Changes in / [7756647:ac9ca967]
- Files:
-
- 11 deleted
- 20 edited
-
doc/aaron_comp_II/Efficient Type Resolution in Cforall.pptx (deleted)
-
doc/aaron_comp_II/comp_II.tex (modified) (2 diffs)
-
doc/aaron_comp_II/conversion_dag.png (deleted)
-
doc/aaron_comp_II/resolution_dag.png (deleted)
-
doc/aaron_comp_II/resolution_dag2.odg (deleted)
-
doc/aaron_comp_II/resolution_dag2.png (deleted)
-
doc/proposals/concurrency/Makefile (deleted)
-
doc/proposals/concurrency/concurrency.tex (deleted)
-
doc/proposals/concurrency/glossary.tex (deleted)
-
doc/proposals/concurrency/local.bib (deleted)
-
src/Common/DebugMalloc.cc (deleted)
-
src/Common/SemanticError.h (modified) (2 diffs)
-
src/Common/module.mk (modified) (1 diff)
-
src/Common/utility.h (modified) (5 diffs)
-
src/Makefile.am (modified) (2 diffs)
-
src/Makefile.in (modified) (7 diffs)
-
src/Parser/DeclarationNode.cc (modified) (62 diffs)
-
src/Parser/ExpressionNode.cc (modified) (2 diffs)
-
src/Parser/InitializerNode.cc (modified) (4 diffs)
-
src/Parser/LinkageSpec.cc (modified) (4 diffs)
-
src/Parser/LinkageSpec.h (modified) (2 diffs)
-
src/Parser/ParseNode.cc (modified) (2 diffs)
-
src/Parser/ParseNode.h (modified) (16 diffs)
-
src/Parser/TypeData.cc (modified) (33 diffs)
-
src/Parser/TypeData.h (modified) (6 diffs)
-
src/Parser/parser.cc (modified) (247 diffs)
-
src/Parser/parser.h (modified) (1 diff)
-
src/Parser/parser.yy (modified) (19 diffs)
-
src/SynTree/FunctionDecl.cc (modified) (2 diffs)
-
src/SynTree/ObjectDecl.cc (modified) (2 diffs)
-
src/libcfa/memcheck.awk (deleted)
Legend:
- Unmodified
- Added
- Removed
-
doc/aaron_comp_II/comp_II.tex
r7756647 rac9ca967 400 400 401 401 \section{Expression Resolution} 402 \subsection{Analysis}403 402 The expression resolution problem is determining an optimal match between some combination of argument interpretations and the parameter list of some overloaded instance of a function; the argument interpretations are produced by recursive invocations of expression resolution, where the base case is zero-argument functions (which are, for purposes of this discussion, semantically equivalent to named variables or constant literal expressions). 404 403 Assuming that the matching between a function's parameter list and a combination of argument interpretations can be done in $\bigO{p^k}$ time, where $p$ is the number of parameters and $k$ is some positive number, if there are $\bigO{i}$ valid interpretations for each subexpression, there will be $\bigO{i}$ candidate functions and $\bigO{i^p}$ possible argument combinations for each expression, so for a single recursive call expression resolution takes $\bigO{i^{p+1} \cdot p^k}$ time if it must compare all combinations, or $\bigO{i(p+1) \cdot p^k}$ time if argument-parameter matches can be chosen independently of each other. … … 410 409 The number of valid interpretations of any subexpression, $i$, is bounded by the number of types in the system, which is possibly infinite, though practical resolution algorithms for \CFA must be able to place some finite bound on $i$, possibly at the expense of type-system completeness. 411 410 412 \subsection{Expression Costs}413 The expression resolution problem involves minimization of a cost function; loosely defined, this cost function is the number of implicit conversions in the top-level expression interpretation.414 With more specificity, the \emph{cost} of a particular expression interpretation is a lexicographically-ordered tuple, where each element of the tuple corresponds to a particular kind of conversion.415 In \CFA today, cost is a three-tuple including the number of unsafe conversions, the number of polymorphic parameter bindings, and the number of safe conversions.416 These counts include conversions used in subexpression interpretations, as well as those necessary to satisfy the type assertions of any polymorphic functions included in the interpretation.417 418 \begin{lstlisting}419 void f(char, long); // $f_1$ - cost (2, 0, 1)420 forall(otype T) void f(T, long); // $f_2$ - cost (0, 1, 1)421 void f(long, long); // $f_{3a}$ - cost (0, 0, 2)422 void f(int, float); // $f_{3b}$ - cost (0, 0, 2)423 void f(int, long); // $f_4$ - cost (0, 0, 1)424 425 f(7, 11);426 \end{lstlisting}427 428 In the example above, the expression resolves to $f_4$.429 $f_1$ has an unsafe conversion (from ©int© to ©char©), and is thus the highest cost, followed by $f_2$, which has a polymorphic binding (from ©int© to ©T©).430 Neither $f_{3a}$, $f_{3b}$, or $f_4$ match exactly with the type of the call expression (©void (*)(int, int)©), each involving safe conversions, but in this case $f_4$ is cheaper than $f_{3a}$, because it converts fewer arguments, and is also cheaper than $f_{3b}$, because ©long© is a closer match for ©int© than ©float© is.431 If the declaration of $f_4$ was missing, the expression would be ambiguous, because the two single-step ©int©-to-©long© conversions in $f_{3a}$ cost the same as the one double-step ©int©-to-©float© conversion in $f_{3b}$.432 433 In the course of this project I may modify the cost tuple,\footnote{I have considered adding an element to distinguish between cast expressions used as conversions and those used as type ascriptions, and another element to differentiate interpretations based on closer qualifier matches. The existing costing of polymorphic functions could also be made more precice than a bare count of parameter bindings.} but the essential nature of the cost calculation should remain the same.434 435 \subsection{Objectives}436 411 The research goal of this project is to develop a performant expression resolver for \CFA; this analysis suggests three primary areas of investigation to accomplish that end. 437 412 The first area of investigation is efficient argument-parameter matching; Bilson~\cite{Bilson03} mentions significant optimization opportunities available in the current literature to improve on the existing CFA compiler. -
src/Common/SemanticError.h
r7756647 rac9ca967 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 24 15:13:42 201613 // Update Count : 512 // Last Modified On : Mon Jun 8 14:38:53 2015 13 // Update Count : 4 14 14 // 15 15 … … 46 46 } 47 47 48 48 49 #endif // SEMANTICERROR_H 49 50 -
src/Common/module.mk
r7756647 rac9ca967 11 11 ## Created On : Mon Jun 1 17:49:17 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : T ue Sep 27 11:06:38201614 ## Update Count : 413 ## Last Modified On : Thu Aug 18 13:29:04 2016 14 ## Update Count : 2 15 15 ############################################################################### 16 16 17 17 SRC += Common/SemanticError.cc \ 18 18 Common/UniqueName.cc \ 19 Common/DebugMalloc.cc \20 19 Common/Assert.cc -
src/Common/utility.h
r7756647 rac9ca967 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 23 11:46:47201613 // Update Count : 2 812 // Last Modified On : Wed Jun 8 17:33:59 2016 13 // Update Count : 22 14 14 // 15 15 … … 25 25 #include <sstream> 26 26 #include <string> 27 #include <cassert>28 27 29 28 template< typename T > … … 102 101 } // if 103 102 } // for 103 } 104 105 static inline std::string assign_strptr( const std::string *str ) { 106 if ( str == 0 ) { 107 return ""; 108 } else { 109 std::string tmp; 110 tmp = *str; 111 delete str; 112 return tmp; 113 } // if 104 114 } 105 115 … … 131 141 132 142 template < typename T > 133 void toString_single ( std::ostream & os, const T & value ) {143 void toString_single ( std::ostream & os, const T & value ) { 134 144 os << value; 135 145 } 136 146 137 147 template < typename T, typename... Params > 138 void toString_single ( std::ostream & os, const T & value, const Params & ... params ) {148 void toString_single ( std::ostream & os, const T & value, const Params & ... params ) { 139 149 os << value; 140 150 toString_single( os, params ... ); … … 142 152 143 153 template < typename ... Params > 144 std::string toString ( const Params & ... params ) {154 std::string toString ( const Params & ... params ) { 145 155 std::ostringstream os; 146 156 toString_single( os, params... ); -
src/Makefile.am
r7756647 rac9ca967 11 11 ## Created On : Sun May 31 08:51:46 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Sat Sep 24 15:03:52 201614 ## Update Count : 7 313 ## Last Modified On : Sat Aug 20 11:13:12 2016 14 ## Update Count : 71 15 15 ############################################################################### 16 16 … … 40 40 cfa_cpplib_PROGRAMS = driver/cfa-cpp 41 41 driver_cfa_cpp_SOURCES = ${SRC} 42 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl# yywrap42 driver_cfa_cpp_LDADD = ${LEXLIB} # yywrap 43 43 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -rdynamic -I${abs_top_srcdir}/src/include 44 44 -
src/Makefile.in
r7756647 rac9ca967 98 98 Common/driver_cfa_cpp-SemanticError.$(OBJEXT) \ 99 99 Common/driver_cfa_cpp-UniqueName.$(OBJEXT) \ 100 Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT) \101 100 Common/driver_cfa_cpp-Assert.$(OBJEXT) \ 102 101 ControlStruct/driver_cfa_cpp-LabelGenerator.$(OBJEXT) \ … … 359 358 CodeGen/CodeGenerator.cc CodeGen/GenType.cc \ 360 359 CodeGen/FixNames.cc CodeGen/OperatorTable.cc \ 361 Common/SemanticError.cc Common/UniqueName.cc \ 362 Common/DebugMalloc.cc Common/Assert.cc \ 360 Common/SemanticError.cc Common/UniqueName.cc Common/Assert.cc \ 363 361 ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \ 364 362 ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \ … … 414 412 cfa_cpplibdir = ${libdir} 415 413 driver_cfa_cpp_SOURCES = ${SRC} 416 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl# yywrap414 driver_cfa_cpp_LDADD = ${LEXLIB} # yywrap 417 415 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -rdynamic -I${abs_top_srcdir}/src/include 418 416 all: $(BUILT_SOURCES) … … 514 512 Common/$(DEPDIR)/$(am__dirstamp) 515 513 Common/driver_cfa_cpp-UniqueName.$(OBJEXT): Common/$(am__dirstamp) \ 516 Common/$(DEPDIR)/$(am__dirstamp)517 Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT): Common/$(am__dirstamp) \518 514 Common/$(DEPDIR)/$(am__dirstamp) 519 515 Common/driver_cfa_cpp-Assert.$(OBJEXT): Common/$(am__dirstamp) \ … … 788 784 -rm -f CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT) 789 785 -rm -f Common/driver_cfa_cpp-Assert.$(OBJEXT) 790 -rm -f Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT)791 786 -rm -f Common/driver_cfa_cpp-SemanticError.$(OBJEXT) 792 787 -rm -f Common/driver_cfa_cpp-UniqueName.$(OBJEXT) … … 894 889 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po@am__quote@ 895 890 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Assert.Po@am__quote@ 896 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po@am__quote@897 891 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po@am__quote@ 898 892 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po@am__quote@ … … 1131 1125 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1132 1126 1133 Common/driver_cfa_cpp-DebugMalloc.o: Common/DebugMalloc.cc1134 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-DebugMalloc.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo -c -o Common/driver_cfa_cpp-DebugMalloc.o `test -f 'Common/DebugMalloc.cc' || echo '$(srcdir)/'`Common/DebugMalloc.cc1135 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po1136 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/DebugMalloc.cc' object='Common/driver_cfa_cpp-DebugMalloc.o' libtool=no @AMDEPBACKSLASH@1137 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@1138 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-DebugMalloc.o `test -f 'Common/DebugMalloc.cc' || echo '$(srcdir)/'`Common/DebugMalloc.cc1139 1140 Common/driver_cfa_cpp-DebugMalloc.obj: Common/DebugMalloc.cc1141 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-DebugMalloc.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo -c -o Common/driver_cfa_cpp-DebugMalloc.obj `if test -f 'Common/DebugMalloc.cc'; then $(CYGPATH_W) 'Common/DebugMalloc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/DebugMalloc.cc'; fi`1142 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po1143 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/DebugMalloc.cc' object='Common/driver_cfa_cpp-DebugMalloc.obj' libtool=no @AMDEPBACKSLASH@1144 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@1145 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-DebugMalloc.obj `if test -f 'Common/DebugMalloc.cc'; then $(CYGPATH_W) 'Common/DebugMalloc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/DebugMalloc.cc'; fi`1146 1147 1127 Common/driver_cfa_cpp-Assert.o: Common/Assert.cc 1148 1128 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Assert.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Assert.Tpo -c -o Common/driver_cfa_cpp-Assert.o `test -f 'Common/Assert.cc' || echo '$(srcdir)/'`Common/Assert.cc -
src/Parser/DeclarationNode.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08 201613 // Update Count : 65112 // Last Modified On : Wed Sep 14 23:13:28 2016 13 // Update Count : 502 14 14 // 15 15 … … 31 31 32 32 // These must remain in the same order as the corresponding DeclarationNode enumerations. 33 const char * DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "NoStorageClass" };34 const char * DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic", "NoQualifier" };35 const char * DeclarationNode::basicTypeName[] = { "void", "_Bool", "char", "int", "float", "double", "long double", "NoBasicType" };36 const char * DeclarationNode::complexTypeName[] = { "_Complex", "_Imaginary", "NoComplexType" };37 const char * DeclarationNode::signednessName[] = { "signed", "unsigned", "NoSignedness" };38 const char * DeclarationNode::lengthName[] = { "short", "long", "long long", "NoLength" };39 const char * DeclarationNode::aggregateName[] = { "struct", "union", "context" };40 const char * DeclarationNode::typeClassName[] = { "otype", "dtype", "ftype" };41 const char * DeclarationNode::builtinTypeName[] = { "__builtin_va_list" };33 const char *DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "NoStorageClass" }; 34 const char *DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic", "NoQualifier" }; 35 const char *DeclarationNode::basicTypeName[] = { "void", "_Bool", "char", "int", "float", "double", "long double", "NoBasicType" }; 36 const char *DeclarationNode::complexTypeName[] = { "_Complex", "_Imaginary", "NoComplexType" }; 37 const char *DeclarationNode::signednessName[] = { "signed", "unsigned", "NoSignedness" }; 38 const char *DeclarationNode::lengthName[] = { "short", "long", "long long", "NoLength" }; 39 const char *DeclarationNode::aggregateName[] = { "struct", "union", "context" }; 40 const char *DeclarationNode::typeClassName[] = { "otype", "dtype", "ftype" }; 41 const char *DeclarationNode::builtinTypeName[] = { "__builtin_va_list" }; 42 42 43 43 UniqueName DeclarationNode::anonymous( "__anonymous" ); … … 46 46 47 47 DeclarationNode::DeclarationNode() : 48 type( nullptr),48 type( 0 ), 49 49 storageClass( NoStorageClass ), 50 50 isInline( false ), 51 51 isNoreturn( false ), 52 bitfieldWidth( nullptr),53 initializer( nullptr),52 bitfieldWidth( 0 ), 53 initializer( 0 ), 54 54 hasEllipsis( false ), 55 55 linkage( ::linkage ), 56 56 extension( false ) { 57 58 // variable.name = nullptr; 59 variable.tyClass = NoTypeClass; 57 variable.tyClass = DeclarationNode::Otype; 60 58 variable.assertions = nullptr; 61 59 62 // attr.name = nullptr;63 60 attr.expr = nullptr; 64 61 attr.type = nullptr; … … 66 63 67 64 DeclarationNode::~DeclarationNode() { 68 // delete attr.name;69 65 delete attr.expr; 70 66 delete attr.type; 71 72 // delete variable.name;73 delete variable.assertions;74 75 67 delete type; 76 68 delete bitfieldWidth; … … 78 70 } 79 71 80 DeclarationNode * DeclarationNode::clone() const {81 DeclarationNode * newnode = new DeclarationNode;72 DeclarationNode *DeclarationNode::clone() const { 73 DeclarationNode *newnode = new DeclarationNode; 82 74 newnode->type = maybeClone( type ); 83 newnode->name = name ? new string( *name ) : nullptr;75 newnode->name = name; 84 76 newnode->storageClass = storageClass; 85 77 newnode->isInline = isInline; … … 91 83 newnode->linkage = linkage; 92 84 93 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; 85 newnode->variable.assertions = maybeClone( variable.assertions ); 86 newnode->variable.name = variable.name; 94 87 newnode->variable.tyClass = variable.tyClass; 95 newnode->variable.assertions = maybeClone( variable.assertions ); 96 97 // newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr; 88 98 89 newnode->attr.expr = maybeClone( attr.expr ); 99 90 newnode->attr.type = maybeClone( attr.type ); … … 107 98 void DeclarationNode::print( std::ostream &os, int indent ) const { 108 99 os << string( indent, ' ' ); 109 if ( name ) {110 os << *name << ": ";100 if ( name == "" ) { 101 os << "unnamed: "; 111 102 } else { 112 os << "unnamed: ";103 os << name << ": "; 113 104 } // if 114 105 115 106 if ( linkage != LinkageSpec::Cforall ) { 116 os << LinkageSpec:: linkageName( linkage ) << " ";107 os << LinkageSpec::toString( linkage ) << " "; 117 108 } // if 118 109 … … 131 122 } // if 132 123 133 if ( initializer ) {124 if ( initializer != 0 ) { 134 125 os << endl << string( indent + 2, ' ' ) << "with initializer "; 135 126 initializer->printOneLine( os ); … … 148 139 } 149 140 150 DeclarationNode * DeclarationNode::newFunction( string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle ) { 151 DeclarationNode * newnode = new DeclarationNode; 152 newnode->name = name; 141 DeclarationNode *DeclarationNode::newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle ) { 142 DeclarationNode *newnode = new DeclarationNode; 143 newnode->name = assign_strptr( name ); 144 153 145 newnode->type = new TypeData( TypeData::Function ); 154 146 newnode->type->function.params = param; 155 147 newnode->type->function.newStyle = newStyle; 156 148 newnode->type->function.body = body; 157 // ignore unnamed routine declarations: void p( int (*)(int) ); 158 if ( newnode->name ) { 159 typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID ); 160 } // if 149 typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID ); 161 150 162 151 if ( body ) { … … 166 155 if ( ret ) { 167 156 newnode->type->base = ret->type; 168 ret->type = nullptr;157 ret->type = 0; 169 158 delete ret; 170 159 } // if … … 174 163 175 164 DeclarationNode * DeclarationNode::newQualifier( Qualifier q ) { 176 DeclarationNode * newnode = new DeclarationNode;165 DeclarationNode *newnode = new DeclarationNode; 177 166 newnode->type = new TypeData(); 178 167 newnode->type->qualifiers[ q ] = 1; … … 180 169 } // DeclarationNode::newQualifier 181 170 182 DeclarationNode * DeclarationNode::newForall( DeclarationNode * forall ) {183 DeclarationNode * newnode = new DeclarationNode;171 DeclarationNode * DeclarationNode::newForall( DeclarationNode *forall ) { 172 DeclarationNode *newnode = new DeclarationNode; 184 173 newnode->type = new TypeData( TypeData::Unknown ); 185 174 newnode->type->forall = forall; … … 188 177 189 178 DeclarationNode * DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) { 190 DeclarationNode * newnode = new DeclarationNode; 179 DeclarationNode *newnode = new DeclarationNode; 180 //switch (sc) { 181 // case Inline: newnode->isInline = true; break; 182 // case Noreturn: newnode->isNoreturn = true; break; 183 // default: newnode->storageClass = sc; break; 184 //} 191 185 newnode->storageClass = sc; 192 186 return newnode; … … 194 188 195 189 DeclarationNode * DeclarationNode::newBasicType( BasicType bt ) { 196 DeclarationNode * newnode = new DeclarationNode;190 DeclarationNode *newnode = new DeclarationNode; 197 191 newnode->type = new TypeData( TypeData::Basic ); 198 192 newnode->type->basictype = bt; … … 201 195 202 196 DeclarationNode * DeclarationNode::newComplexType( ComplexType ct ) { 203 DeclarationNode * newnode = new DeclarationNode;197 DeclarationNode *newnode = new DeclarationNode; 204 198 newnode->type = new TypeData( TypeData::Basic ); 205 199 newnode->type->complextype = ct; … … 208 202 209 203 DeclarationNode * DeclarationNode::newSignedNess( Signedness sn ) { 210 DeclarationNode * newnode = new DeclarationNode;204 DeclarationNode *newnode = new DeclarationNode; 211 205 newnode->type = new TypeData( TypeData::Basic ); 212 206 newnode->type->signedness = sn; … … 215 209 216 210 DeclarationNode * DeclarationNode::newLength( Length lnth ) { 217 DeclarationNode * newnode = new DeclarationNode;211 DeclarationNode *newnode = new DeclarationNode; 218 212 newnode->type = new TypeData( TypeData::Basic ); 219 213 newnode->type->length = lnth; … … 221 215 } // DeclarationNode::newLength 222 216 223 DeclarationNode * DeclarationNode::newFromTypedef( st ring *name ) {224 DeclarationNode * newnode = new DeclarationNode;217 DeclarationNode * DeclarationNode::newFromTypedef( std::string *name ) { 218 DeclarationNode *newnode = new DeclarationNode; 225 219 newnode->type = new TypeData( TypeData::SymbolicInst ); 226 newnode->type->symbolic.name = name;220 newnode->type->symbolic.name = assign_strptr( name ); 227 221 newnode->type->symbolic.isTypedef = true; 228 newnode->type->symbolic.params = nullptr;222 newnode->type->symbolic.params = 0; 229 223 return newnode; 230 224 } // DeclarationNode::newFromTypedef 231 225 232 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const st ring * name, ExpressionNode * actuals, DeclarationNode *fields, bool body ) {233 DeclarationNode * newnode = new DeclarationNode;226 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) { 227 DeclarationNode *newnode = new DeclarationNode; 234 228 newnode->type = new TypeData( TypeData::Aggregate ); 235 229 newnode->type->aggregate.kind = kind; 236 if ( name ) { 237 newnode->type->aggregate.name = name; 238 } else { // anonymous aggregate ? 239 newnode->type->aggregate.name = new string( anonymous.newName() ); 230 newnode->type->aggregate.name = assign_strptr( name ); 231 if ( newnode->type->aggregate.name == "" ) { // anonymous aggregate ? 232 newnode->type->aggregate.name = anonymous.newName(); 240 233 } // if 241 234 newnode->type->aggregate.actuals = actuals; … … 245 238 } // DeclarationNode::newAggregate 246 239 247 DeclarationNode * DeclarationNode::newEnum( string * name, DeclarationNode * constants ) { 248 DeclarationNode * newnode = new DeclarationNode; 240 DeclarationNode *DeclarationNode::newEnum( std::string *name, DeclarationNode *constants ) { 241 DeclarationNode *newnode = new DeclarationNode; 242 newnode->name = assign_strptr( name ); 249 243 newnode->type = new TypeData( TypeData::Enum ); 250 if ( name ) { 251 newnode->type->enumeration.name = name; 252 } else { // anonymous aggregate ? 253 newnode->type->enumeration.name = new string( anonymous.newName() ); 244 newnode->type->enumeration.name = newnode->name; 245 if ( newnode->type->enumeration.name == "" ) { // anonymous enumeration ? 246 newnode->type->enumeration.name = DeclarationNode::anonymous.newName(); 254 247 } // if 255 248 newnode->type->enumeration.constants = constants; … … 257 250 } // DeclarationNode::newEnum 258 251 259 DeclarationNode * DeclarationNode::newEnumConstant( string * name, ExpressionNode *constant ) {260 DeclarationNode * newnode = new DeclarationNode;261 newnode->name = name;252 DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) { 253 DeclarationNode *newnode = new DeclarationNode; 254 newnode->name = assign_strptr( name ); 262 255 newnode->enumeratorValue.reset( constant ); 263 typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID );256 typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID ); 264 257 return newnode; 265 258 } // DeclarationNode::newEnumConstant 266 259 267 DeclarationNode * DeclarationNode::newName( string *name ) {268 DeclarationNode * newnode = new DeclarationNode;269 newnode->name = name;260 DeclarationNode *DeclarationNode::newName( std::string *name ) { 261 DeclarationNode *newnode = new DeclarationNode; 262 newnode->name = assign_strptr( name ); 270 263 return newnode; 271 264 } // DeclarationNode::newName 272 265 273 DeclarationNode * DeclarationNode::newFromTypeGen( string * name, ExpressionNode *params ) {274 DeclarationNode * newnode = new DeclarationNode;266 DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) { 267 DeclarationNode *newnode = new DeclarationNode; 275 268 newnode->type = new TypeData( TypeData::SymbolicInst ); 276 newnode->type->symbolic.name = name;269 newnode->type->symbolic.name = assign_strptr( name ); 277 270 newnode->type->symbolic.isTypedef = false; 278 271 newnode->type->symbolic.actuals = params; … … 280 273 } // DeclarationNode::newFromTypeGen 281 274 282 DeclarationNode * DeclarationNode::newTypeParam( TypeClass tc, string * name ) { 283 DeclarationNode * newnode = new DeclarationNode; 284 newnode->type = nullptr; 285 assert( ! newnode->name ); 286 // newnode->variable.name = name; 287 newnode->name = name; 275 DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) { 276 DeclarationNode *newnode = new DeclarationNode; 277 newnode->name = assign_strptr( name ); 278 newnode->type = new TypeData( TypeData::Variable ); 288 279 newnode->variable.tyClass = tc; 289 newnode->variable. assertions = nullptr;280 newnode->variable.name = newnode->name; 290 281 return newnode; 291 282 } // DeclarationNode::newTypeParam 292 283 293 DeclarationNode * DeclarationNode::newTrait( const string * name, DeclarationNode * params, DeclarationNode *asserts ) {294 DeclarationNode * newnode = new DeclarationNode;284 DeclarationNode *DeclarationNode::newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) { 285 DeclarationNode *newnode = new DeclarationNode; 295 286 newnode->type = new TypeData( TypeData::Aggregate ); 296 newnode->type->aggregate.name = name;297 287 newnode->type->aggregate.kind = Trait; 298 288 newnode->type->aggregate.params = params; 299 289 newnode->type->aggregate.fields = asserts; 290 newnode->type->aggregate.name = assign_strptr( name ); 300 291 return newnode; 301 292 } // DeclarationNode::newTrait 302 293 303 DeclarationNode * DeclarationNode::newTraitUse( const string * name, ExpressionNode *params ) {304 DeclarationNode * newnode = new DeclarationNode;294 DeclarationNode *DeclarationNode::newTraitUse( std::string *name, ExpressionNode *params ) { 295 DeclarationNode *newnode = new DeclarationNode; 305 296 newnode->type = new TypeData( TypeData::AggregateInst ); 306 297 newnode->type->aggInst.aggregate = new TypeData( TypeData::Aggregate ); 307 298 newnode->type->aggInst.aggregate->aggregate.kind = Trait; 308 newnode->type->aggInst.aggregate->aggregate.name = name;299 newnode->type->aggInst.aggregate->aggregate.name = assign_strptr( name ); 309 300 newnode->type->aggInst.params = params; 310 301 return newnode; 311 302 } // DeclarationNode::newTraitUse 312 303 313 DeclarationNode * DeclarationNode::newTypeDecl( string * name, DeclarationNode * typeParams ) { 314 DeclarationNode * newnode = new DeclarationNode; 304 DeclarationNode *DeclarationNode::newTypeDecl( std::string *name, DeclarationNode *typeParams ) { 305 DeclarationNode *newnode = new DeclarationNode; 306 newnode->name = assign_strptr( name ); 315 307 newnode->type = new TypeData( TypeData::Symbolic ); 316 308 newnode->type->symbolic.isTypedef = false; 317 309 newnode->type->symbolic.params = typeParams; 318 newnode->type->symbolic.name = n ame;310 newnode->type->symbolic.name = newnode->name; 319 311 return newnode; 320 312 } // DeclarationNode::newTypeDecl 321 313 322 DeclarationNode * DeclarationNode::newPointer( DeclarationNode *qualifiers ) {323 DeclarationNode * newnode = new DeclarationNode;314 DeclarationNode *DeclarationNode::newPointer( DeclarationNode *qualifiers ) { 315 DeclarationNode *newnode = new DeclarationNode; 324 316 newnode->type = new TypeData( TypeData::Pointer ); 325 317 return newnode->addQualifiers( qualifiers ); 326 318 } // DeclarationNode::newPointer 327 319 328 DeclarationNode * DeclarationNode::newArray( ExpressionNode * size, DeclarationNode *qualifiers, bool isStatic ) {329 DeclarationNode * newnode = new DeclarationNode;320 DeclarationNode *DeclarationNode::newArray( ExpressionNode *size, DeclarationNode *qualifiers, bool isStatic ) { 321 DeclarationNode *newnode = new DeclarationNode; 330 322 newnode->type = new TypeData( TypeData::Array ); 331 323 newnode->type->array.dimension = size; 332 324 newnode->type->array.isStatic = isStatic; 333 if ( newnode->type->array.dimension == nullptr || newnode->type->array.dimension->isExpressionType<ConstantExpr *>() ) {325 if ( newnode->type->array.dimension == 0 || newnode->type->array.dimension->isExpressionType<ConstantExpr *>() ) { 334 326 newnode->type->array.isVarLen = false; 335 327 } else { … … 339 331 } // DeclarationNode::newArray 340 332 341 DeclarationNode * DeclarationNode::newVarArray( DeclarationNode *qualifiers ) {342 DeclarationNode * newnode = new DeclarationNode;333 DeclarationNode *DeclarationNode::newVarArray( DeclarationNode *qualifiers ) { 334 DeclarationNode *newnode = new DeclarationNode; 343 335 newnode->type = new TypeData( TypeData::Array ); 344 newnode->type->array.dimension = nullptr;336 newnode->type->array.dimension = 0; 345 337 newnode->type->array.isStatic = false; 346 338 newnode->type->array.isVarLen = true; … … 348 340 } 349 341 350 DeclarationNode * DeclarationNode::newBitfield( ExpressionNode *size ) {351 DeclarationNode * newnode = new DeclarationNode;342 DeclarationNode *DeclarationNode::newBitfield( ExpressionNode *size ) { 343 DeclarationNode *newnode = new DeclarationNode; 352 344 newnode->bitfieldWidth = size; 353 345 return newnode; 354 346 } 355 347 356 DeclarationNode * DeclarationNode::newTuple( DeclarationNode *members ) {357 DeclarationNode * newnode = new DeclarationNode;348 DeclarationNode *DeclarationNode::newTuple( DeclarationNode *members ) { 349 DeclarationNode *newnode = new DeclarationNode; 358 350 newnode->type = new TypeData( TypeData::Tuple ); 359 351 newnode->type->tuple = members; … … 361 353 } 362 354 363 DeclarationNode * DeclarationNode::newTypeof( ExpressionNode *expr ) {364 DeclarationNode * newnode = new DeclarationNode;355 DeclarationNode *DeclarationNode::newTypeof( ExpressionNode *expr ) { 356 DeclarationNode *newnode = new DeclarationNode; 365 357 newnode->type = new TypeData( TypeData::Typeof ); 366 358 newnode->type->typeexpr = expr; … … 369 361 370 362 DeclarationNode * DeclarationNode::newBuiltinType( BuiltinType bt ) { 371 DeclarationNode * newnode = new DeclarationNode;363 DeclarationNode *newnode = new DeclarationNode; 372 364 newnode->type = new TypeData( TypeData::Builtin ); 373 365 newnode->builtin = bt; … … 375 367 } // DeclarationNode::newBuiltinType 376 368 377 DeclarationNode * DeclarationNode::newAttr( string * name, ExpressionNode * expr ) { 378 DeclarationNode * newnode = new DeclarationNode; 379 newnode->type = nullptr; 380 // newnode->attr.name = name; 381 newnode->name = name; 369 DeclarationNode *DeclarationNode::newAttr( std::string *name, ExpressionNode *expr ) { 370 DeclarationNode *newnode = new DeclarationNode; 371 newnode->type = new TypeData( TypeData::Attr ); 372 newnode->attr.name = assign_strptr( name ); 382 373 newnode->attr.expr = expr; 383 374 return newnode; 384 375 } 385 376 386 DeclarationNode * DeclarationNode::newAttr( string * name, DeclarationNode * type ) { 387 DeclarationNode * newnode = new DeclarationNode; 388 newnode->type = nullptr; 389 // newnode->attr.name = name; 390 newnode->name = name; 377 DeclarationNode *DeclarationNode::newAttr( std::string *name, DeclarationNode *type ) { 378 DeclarationNode *newnode = new DeclarationNode; 379 newnode->type = new TypeData( TypeData::Attr ); 380 newnode->attr.name = assign_strptr( name ); 391 381 newnode->attr.type = type; 392 382 return newnode; … … 399 389 } // appendError 400 390 401 void DeclarationNode::checkQualifiers( const TypeData * src, const TypeData *dst ) {391 void DeclarationNode::checkQualifiers( const TypeData *src, const TypeData *dst ) { 402 392 TypeData::Qualifiers qsrc = src->qualifiers, qdst = dst->qualifiers; // optimization 403 393 … … 411 401 } // DeclarationNode::checkQualifiers 412 402 413 void DeclarationNode::checkStorageClasses( DeclarationNode * q ) {403 void DeclarationNode::checkStorageClasses( DeclarationNode *q ) { 414 404 if ( storageClass != NoStorageClass && q->storageClass != NoStorageClass ) { 415 405 if ( storageClass == q->storageClass ) { // duplicate qualifier … … 423 413 } // DeclarationNode::copyStorageClasses 424 414 425 DeclarationNode * DeclarationNode::copyStorageClasses( DeclarationNode *q ) {415 DeclarationNode *DeclarationNode::copyStorageClasses( DeclarationNode *q ) { 426 416 isInline = isInline || q->isInline; 427 417 isNoreturn = isNoreturn || q->isNoreturn; … … 434 424 } // DeclarationNode::copyStorageClasses 435 425 436 static void addQualifiersToType( TypeData *&src, TypeData * dst ) {426 static void addQualifiersToType( TypeData *&src, TypeData *dst ) { 437 427 if ( src->forall && dst->kind == TypeData::Function ) { 438 428 if ( dst->forall ) { … … 441 431 dst->forall = src->forall; 442 432 } // if 443 src->forall = nullptr;433 src->forall = 0; 444 434 } // if 445 435 if ( dst->base ) { … … 447 437 } else if ( dst->kind == TypeData::Function ) { 448 438 dst->base = src; 449 src = nullptr;439 src = 0; 450 440 } else { 451 441 dst->qualifiers |= src->qualifiers; … … 453 443 } // addQualifiersToType 454 444 455 DeclarationNode * DeclarationNode::addQualifiers( DeclarationNode *q ) {456 if ( ! q ) { delete q; return this; }445 DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) { 446 if ( ! q ) return this; 457 447 458 448 checkStorageClasses( q ); 459 449 copyStorageClasses( q ); 460 450 461 if ( ! q->type ) { 462 delete q; 463 return this; 464 } // if 451 if ( ! q->type ) { delete q; return this; } 465 452 466 453 if ( ! type ) { 467 type = q->type; // reuse this structure 468 q->type = nullptr; 469 delete q; 454 // type = new TypeData; 455 type = q->type; 470 456 return this; 471 457 } // if … … 481 467 type->aggregate.params = q->type->forall; 482 468 // change implicit typedef from TYPEDEFname to TYPEGENname 483 typedefTable.changeKind( *type->aggregate.name, TypedefTable::TG );469 typedefTable.changeKind( type->aggregate.name, TypedefTable::TG ); 484 470 } else { 485 471 type->forall = q->type->forall; 486 472 } // if 487 473 } // if 488 q->type->forall = nullptr;474 q->type->forall = 0; 489 475 } // if 490 476 delete q; … … 499 485 dst->forall = src->forall; 500 486 } // if 501 src->forall = nullptr;487 src->forall = 0; 502 488 } // if 503 489 if ( dst->base ) { … … 508 494 src->qualifiers |= dst->qualifiers; 509 495 dst = src; 510 src = nullptr;496 src = 0; 511 497 break; 512 498 case TypeData::Basic: … … 518 504 dst->basictype = src->basictype; 519 505 } else if ( src->basictype != DeclarationNode::NoBasicType ) 520 throw SemanticError( st ring( "conflicting type specifier " ) + DeclarationNode::basicTypeName[ src->basictype ] + " in type: ", src );506 throw SemanticError( std::string( "conflicting type specifier " ) + DeclarationNode::basicTypeName[ src->basictype ] + " in type: ", src ); 521 507 522 508 if ( dst->complextype == DeclarationNode::NoComplexType ) { 523 509 dst->complextype = src->complextype; 524 510 } else if ( src->complextype != DeclarationNode::NoComplexType ) 525 throw SemanticError( st ring( "conflicting type specifier " ) + DeclarationNode::complexTypeName[ src->complextype ] + " in type: ", src );511 throw SemanticError( std::string( "conflicting type specifier " ) + DeclarationNode::complexTypeName[ src->complextype ] + " in type: ", src ); 526 512 527 513 if ( dst->signedness == DeclarationNode::NoSignedness ) { 528 514 dst->signedness = src->signedness; 529 515 } else if ( src->signedness != DeclarationNode::NoSignedness ) 530 throw SemanticError( st ring( "conflicting type specifier " ) + DeclarationNode::signednessName[ src->signedness ] + " in type: ", src );516 throw SemanticError( std::string( "conflicting type specifier " ) + DeclarationNode::signednessName[ src->signedness ] + " in type: ", src ); 531 517 532 518 if ( dst->length == DeclarationNode::NoLength ) { … … 535 521 dst->length = DeclarationNode::LongLong; 536 522 } else if ( src->length != DeclarationNode::NoLength ) 537 throw SemanticError( st ring( "conflicting type specifier " ) + DeclarationNode::lengthName[ src->length ] + " in type: ", src );523 throw SemanticError( std::string( "conflicting type specifier " ) + DeclarationNode::lengthName[ src->length ] + " in type: ", src ); 538 524 } // if 539 525 break; … … 548 534 } // if 549 535 dst->base->qualifiers |= src->qualifiers; 550 src = nullptr;536 src = 0; 551 537 break; 552 538 default: … … 556 542 dst->forall = src->forall; 557 543 } // if 558 src->forall = nullptr;544 src->forall = 0; 559 545 dst->base = src; 560 src = nullptr;546 src = 0; 561 547 } // switch 562 548 } // switch … … 564 550 } 565 551 566 DeclarationNode * DeclarationNode::addType( DeclarationNode *o ) {552 DeclarationNode *DeclarationNode::addType( DeclarationNode *o ) { 567 553 if ( o ) { 568 554 checkStorageClasses( o ); … … 580 566 type = o->type; 581 567 } // if 582 o->type = nullptr;568 o->type = 0; 583 569 } else { 584 570 addTypeToType( o->type, type ); … … 598 584 } 599 585 600 DeclarationNode * DeclarationNode::addTypedef() {601 TypeData * newtype = new TypeData( TypeData::Symbolic );602 newtype->symbolic.params = nullptr;586 DeclarationNode *DeclarationNode::addTypedef() { 587 TypeData *newtype = new TypeData( TypeData::Symbolic ); 588 newtype->symbolic.params = 0; 603 589 newtype->symbolic.isTypedef = true; 604 newtype->symbolic.name = name ? new string( *name ) : nullptr;590 newtype->symbolic.name = name; 605 591 newtype->base = type; 606 592 type = newtype; … … 608 594 } 609 595 610 DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) { 611 if ( variable.tyClass != NoTypeClass ) { 612 if ( variable.assertions ) { 613 variable.assertions->appendList( assertions ); 614 } else { 615 variable.assertions = assertions; 616 } // if 617 return this; 618 } // if 619 596 DeclarationNode *DeclarationNode::addAssertions( DeclarationNode *assertions ) { 620 597 assert( type ); 621 598 switch ( type->kind ) { … … 627 604 } // if 628 605 break; 606 case TypeData::Variable: 607 if ( variable.assertions ) { 608 variable.assertions->appendList( assertions ); 609 } else { 610 variable.assertions = assertions; 611 } // if 612 break; 629 613 default: 630 614 assert( false ); … … 634 618 } 635 619 636 DeclarationNode * DeclarationNode::addName( string * newname ) { 637 assert( ! name ); 638 name = newname; 639 return this; 640 } 641 642 DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) { 620 DeclarationNode *DeclarationNode::addName( std::string *newname ) { 621 name = assign_strptr( newname ); 622 return this; 623 } 624 625 DeclarationNode *DeclarationNode::addBitfield( ExpressionNode *size ) { 643 626 bitfieldWidth = size; 644 627 return this; 645 628 } 646 629 647 DeclarationNode * DeclarationNode::addVarArgs() {630 DeclarationNode *DeclarationNode::addVarArgs() { 648 631 assert( type ); 649 632 hasEllipsis = true; … … 651 634 } 652 635 653 DeclarationNode * DeclarationNode::addFunctionBody( StatementNode *body ) {636 DeclarationNode *DeclarationNode::addFunctionBody( StatementNode *body ) { 654 637 assert( type ); 655 638 assert( type->kind == TypeData::Function ); 656 assert( ! type->function.body);639 assert( type->function.body == 0 ); 657 640 type->function.body = body; 658 641 type->function.hasBody = true; … … 660 643 } 661 644 662 DeclarationNode * DeclarationNode::addOldDeclList( DeclarationNode *list ) {645 DeclarationNode *DeclarationNode::addOldDeclList( DeclarationNode *list ) { 663 646 assert( type ); 664 647 assert( type->kind == TypeData::Function ); 665 assert( ! type->function.oldDeclList);648 assert( type->function.oldDeclList == 0 ); 666 649 type->function.oldDeclList = list; 667 650 return this; 668 651 } 669 652 670 static void setBase( TypeData *&type, TypeData * newType ) {653 static void setBase( TypeData *&type, TypeData *newType ) { 671 654 if ( type ) { 672 TypeData * prevBase = type;673 TypeData * curBase = type->base;674 while ( curBase != nullptr) {655 TypeData *prevBase = type; 656 TypeData *curBase = type->base; 657 while ( curBase != 0 ) { 675 658 prevBase = curBase; 676 659 curBase = curBase->base; … … 682 665 } 683 666 684 DeclarationNode * DeclarationNode::addPointer( DeclarationNode *p ) {667 DeclarationNode *DeclarationNode::addPointer( DeclarationNode *p ) { 685 668 if ( p ) { 686 669 assert( p->type->kind == TypeData::Pointer ); 687 670 setBase( type, p->type ); 688 p->type = nullptr;671 p->type = 0; 689 672 delete p; 690 673 } // if … … 692 675 } 693 676 694 DeclarationNode * DeclarationNode::addArray( DeclarationNode *a ) {677 DeclarationNode *DeclarationNode::addArray( DeclarationNode *a ) { 695 678 if ( a ) { 696 679 assert( a->type->kind == TypeData::Array ); 697 680 setBase( type, a->type ); 698 a->type = nullptr;681 a->type = 0; 699 682 delete a; 700 683 } // if … … 702 685 } 703 686 704 DeclarationNode * DeclarationNode::addNewPointer( DeclarationNode *p ) {687 DeclarationNode *DeclarationNode::addNewPointer( DeclarationNode *p ) { 705 688 if ( p ) { 706 689 assert( p->type->kind == TypeData::Pointer ); … … 720 703 p->type->base = type; 721 704 } // switch 722 type = nullptr;705 type = 0; 723 706 } // if 724 707 delete this; … … 729 712 } 730 713 731 static TypeData * findLast( TypeData *a ) {714 static TypeData *findLast( TypeData *a ) { 732 715 assert( a ); 733 TypeData * cur = a;716 TypeData *cur = a; 734 717 while ( cur->base ) { 735 718 cur = cur->base; … … 738 721 } 739 722 740 DeclarationNode * DeclarationNode::addNewArray( DeclarationNode *a ) {723 DeclarationNode *DeclarationNode::addNewArray( DeclarationNode *a ) { 741 724 if ( a ) { 742 725 assert( a->type->kind == TypeData::Array ); 743 TypeData * lastArray = findLast( a->type );726 TypeData *lastArray = findLast( a->type ); 744 727 if ( type ) { 745 728 switch ( type->kind ) { … … 756 739 lastArray->base = type; 757 740 } // switch 758 type = nullptr;741 type = 0; 759 742 } // if 760 743 delete this; … … 765 748 } 766 749 767 DeclarationNode * DeclarationNode::addParamList( DeclarationNode *params ) {768 TypeData * ftype = new TypeData( TypeData::Function );750 DeclarationNode *DeclarationNode::addParamList( DeclarationNode *params ) { 751 TypeData *ftype = new TypeData( TypeData::Function ); 769 752 ftype->function.params = params; 770 753 setBase( type, ftype ); … … 772 755 } 773 756 774 static TypeData * addIdListToType( TypeData * type, DeclarationNode *ids ) {757 static TypeData *addIdListToType( TypeData *type, DeclarationNode *ids ) { 775 758 if ( type ) { 776 759 if ( type->kind != TypeData::Function ) { … … 781 764 return type; 782 765 } else { 783 TypeData * newtype = new TypeData( TypeData::Function );766 TypeData *newtype = new TypeData( TypeData::Function ); 784 767 newtype->function.idList = ids; 785 768 return newtype; 786 769 } // if 787 } // addIdListToType788 789 DeclarationNode * DeclarationNode::addIdList( DeclarationNode *ids ) {770 } 771 772 DeclarationNode *DeclarationNode::addIdList( DeclarationNode *ids ) { 790 773 type = addIdListToType( type, ids ); 791 774 return this; 792 775 } 793 776 794 DeclarationNode * DeclarationNode::addInitializer( InitializerNode * init ) { 777 DeclarationNode *DeclarationNode::addInitializer( InitializerNode *init ) { 778 //assert 795 779 initializer = init; 796 780 return this; 797 781 } 798 782 799 DeclarationNode * DeclarationNode::cloneType( string * newName ) { 800 DeclarationNode * newnode = new DeclarationNode; 783 DeclarationNode *DeclarationNode::cloneBaseType( string *newName ) { 784 DeclarationNode *newnode = new DeclarationNode; 785 TypeData *srcType = type; 786 while ( srcType->base ) { 787 srcType = srcType->base; 788 } // while 789 newnode->type = maybeClone( srcType ); 790 if ( newnode->type->kind == TypeData::AggregateInst ) { 791 // don't duplicate members 792 if ( newnode->type->aggInst.aggregate->kind == TypeData::Enum ) { 793 delete newnode->type->aggInst.aggregate->enumeration.constants; 794 newnode->type->aggInst.aggregate->enumeration.constants = 0; 795 } else { 796 assert( newnode->type->aggInst.aggregate->kind == TypeData::Aggregate ); 797 delete newnode->type->aggInst.aggregate->aggregate.fields; 798 newnode->type->aggInst.aggregate->aggregate.fields = 0; 799 } // if 800 } // if 801 newnode->type->forall = maybeClone( type->forall ); 802 assert( storageClass == NoStorageClass ); 803 newnode->copyStorageClasses( this ); 804 newnode->name = assign_strptr( newName ); 805 return newnode; 806 } 807 808 DeclarationNode *DeclarationNode::cloneBaseType( DeclarationNode *o ) { 809 if ( o ) { 810 o->copyStorageClasses( this ); 811 if ( type ) { 812 TypeData *srcType = type; 813 while ( srcType->base ) { 814 srcType = srcType->base; 815 } // while 816 TypeData *newType = srcType->clone(); 817 if ( newType->kind == TypeData::AggregateInst ) { 818 // don't duplicate members 819 if ( newType->aggInst.aggregate->kind == TypeData::Enum ) { 820 delete newType->aggInst.aggregate->enumeration.constants; 821 newType->aggInst.aggregate->enumeration.constants = 0; 822 } else { 823 assert( newType->aggInst.aggregate->kind == TypeData::Aggregate ); 824 delete newType->aggInst.aggregate->aggregate.fields; 825 newType->aggInst.aggregate->aggregate.fields = 0; 826 } // if 827 } // if 828 newType->forall = maybeClone( type->forall ); 829 if ( ! o->type ) { 830 o->type = newType; 831 } else { 832 addTypeToType( newType, o->type ); 833 delete newType; 834 } // if 835 } // if 836 } // if 837 return o; 838 } 839 840 DeclarationNode *DeclarationNode::cloneType( string *newName ) { 841 DeclarationNode *newnode = new DeclarationNode; 801 842 newnode->type = maybeClone( type ); 802 843 assert( storageClass == NoStorageClass ); 803 844 newnode->copyStorageClasses( this ); 804 assert( newName ); 805 newnode->name = newName; 806 return newnode; 807 } 808 809 DeclarationNode * DeclarationNode::cloneBaseType( DeclarationNode * o ) { 810 if ( ! o ) return nullptr; 811 812 o->copyStorageClasses( this ); 845 newnode->name = assign_strptr( newName ); 846 return newnode; 847 } 848 849 DeclarationNode *DeclarationNode::cloneType( DeclarationNode *o ) { 850 if ( o ) { 851 assert( storageClass == NoStorageClass ); 852 o->copyStorageClasses( this ); 853 if ( type ) { 854 TypeData *newType = type->clone(); 855 if ( ! o->type ) { 856 o->type = newType; 857 } else { 858 addTypeToType( newType, o->type ); 859 delete newType; 860 } // if 861 } // if 862 } // if 863 delete o; 864 return o; 865 } 866 867 DeclarationNode *DeclarationNode::extractAggregate() const { 813 868 if ( type ) { 814 TypeData * srcType = type; 815 816 while ( srcType->base ) { 817 srcType = srcType->base; 818 } // while 819 820 TypeData * newType = srcType->clone(); 821 if ( newType->kind == TypeData::AggregateInst ) { 822 // don't duplicate members 823 if ( newType->aggInst.aggregate->kind == TypeData::Enum ) { 824 delete newType->aggInst.aggregate->enumeration.constants; 825 newType->aggInst.aggregate->enumeration.constants = nullptr; 826 } else { 827 assert( newType->aggInst.aggregate->kind == TypeData::Aggregate ); 828 delete newType->aggInst.aggregate->aggregate.fields; 829 newType->aggInst.aggregate->aggregate.fields = nullptr; 830 } // if 831 } // if 832 833 newType->forall = maybeClone( type->forall ); 834 if ( ! o->type ) { 835 o->type = newType; 836 } else { 837 addTypeToType( newType, o->type ); 838 delete newType; 839 } // if 840 } // if 841 return o; 842 } 843 844 DeclarationNode * DeclarationNode::extractAggregate() const { 845 if ( type ) { 846 TypeData * ret = typeextractAggregate( type ); 869 TypeData *ret = typeextractAggregate( type ); 847 870 if ( ret ) { 848 DeclarationNode * newnode = new DeclarationNode;871 DeclarationNode *newnode = new DeclarationNode; 849 872 newnode->type = ret; 850 873 return newnode; 851 874 } // if 852 875 } // if 853 return nullptr;854 } 855 856 void buildList( const DeclarationNode * firstNode, std::list< Declaration * > &outputList ) {876 return 0; 877 } 878 879 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ) { 857 880 SemanticError errors; 858 881 std::back_insert_iterator< std::list< Declaration * > > out( outputList ); 859 const DeclarationNode * cur = firstNode; 860 882 const DeclarationNode *cur = firstNode; 861 883 while ( cur ) { 862 884 try { 863 if ( DeclarationNode * extr = cur->extractAggregate() ) {885 if ( DeclarationNode *extr = cur->extractAggregate() ) { 864 886 // handle the case where a structure declaration is contained within an object or type declaration 865 Declaration * decl = extr->build();887 Declaration *decl = extr->build(); 866 888 if ( decl ) { 867 * out++ = decl;889 *out++ = decl; 868 890 } // if 869 891 delete extr; 870 892 } // if 871 872 Declaration * decl = cur->build(); 893 Declaration *decl = cur->build(); 873 894 if ( decl ) { 874 * out++ = decl;895 *out++ = decl; 875 896 } // if 876 897 } catch( SemanticError &e ) { … … 879 900 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 880 901 } // while 881 882 902 if ( ! errors.isEmpty() ) { 883 903 throw errors; 884 904 } // if 885 } // buildList886 887 void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > &outputList ) {905 } 906 907 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType * > &outputList ) { 888 908 SemanticError errors; 889 909 std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList ); 890 const DeclarationNode * cur = firstNode;910 const DeclarationNode *cur = firstNode; 891 911 while ( cur ) { 892 912 try { 893 Declaration * decl = cur->build();913 Declaration *decl = cur->build(); 894 914 if ( decl ) { 895 if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {896 * out++ = dwt;897 } else if ( StructDecl * agg = dynamic_cast< StructDecl * >( decl ) ) {898 StructInstType * inst = new StructInstType( Type::Qualifiers(), agg->get_name() );899 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr);915 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( decl ) ) { 916 *out++ = dwt; 917 } else if ( StructDecl *agg = dynamic_cast< StructDecl * >( decl ) ) { 918 StructInstType *inst = new StructInstType( Type::Qualifiers(), agg->get_name() ); 919 *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 ); 900 920 delete agg; 901 } else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) {902 UnionInstType * inst = new UnionInstType( Type::Qualifiers(), agg->get_name() );903 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr);921 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl * >( decl ) ) { 922 UnionInstType *inst = new UnionInstType( Type::Qualifiers(), agg->get_name() ); 923 *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 ); 904 924 } // if 905 925 } // if … … 912 932 throw errors; 913 933 } // if 914 } // buildList915 916 void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > &outputList ) {934 } 935 936 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ) { 917 937 SemanticError errors; 918 938 std::back_insert_iterator< std::list< Type * > > out( outputList ); 919 const DeclarationNode * cur = firstNode; 920 939 const DeclarationNode *cur = firstNode; 921 940 while ( cur ) { 922 941 try { 923 * out++ = cur->buildType();942 *out++ = cur->buildType(); 924 943 } catch( SemanticError &e ) { 925 944 errors.append( e ); … … 927 946 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 928 947 } // while 929 930 948 if ( ! errors.isEmpty() ) { 931 949 throw errors; 932 950 } // if 933 } // buildTypeList934 935 Declaration * DeclarationNode::build() const {951 } 952 953 Declaration *DeclarationNode::build() const { 936 954 if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this ); 937 938 // if ( variable.name ) {939 if ( variable.tyClass != NoTypeClass ) {940 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };941 // TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );942 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] );943 buildList( variable.assertions, ret->get_assertions() );944 return ret;945 } // if946 947 955 if ( type ) { 948 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 949 } // if 950 956 if ( type->kind == TypeData::Variable ) { 957 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 958 TypeDecl * ret = new TypeDecl( variable.name, DeclarationNode::NoStorageClass, 0, kindMap[ variable.tyClass ] ); 959 buildList( variable.assertions, ret->get_assertions() ); 960 return ret; 961 } else { 962 return buildDecl( type, name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 963 } // if 964 } // if 951 965 if ( ! isInline && ! isNoreturn ) { 952 assertf( name, "ObjectDecl are assumed to have names\n" ); 953 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_extension( extension ); 954 } // if 955 966 return (new ObjectDecl( name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension ); 967 } // if 956 968 throw SemanticError( "invalid function specifier ", this ); 957 969 } 958 970 959 Type * DeclarationNode::buildType() const {971 Type *DeclarationNode::buildType() const { 960 972 assert( type ); 961 962 if ( attr.expr ) {963 // return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() );964 return new AttrType( buildQualifiers( type ), *name, attr.expr->build() );965 } else if ( attr.type ) {966 // return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() );967 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() );968 } // if969 973 970 974 switch ( type->kind ) { 971 975 case TypeData::Enum: 972 return new EnumInstType( buildQualifiers( type ), *type->enumeration.name );976 return new EnumInstType( buildQualifiers( type ), type->enumeration.name ); 973 977 case TypeData::Aggregate: { 974 ReferenceToType * ret;978 ReferenceToType *ret; 975 979 switch ( type->aggregate.kind ) { 976 980 case DeclarationNode::Struct: 977 ret = new StructInstType( buildQualifiers( type ), *type->aggregate.name );981 ret = new StructInstType( buildQualifiers( type ), type->aggregate.name ); 978 982 break; 979 983 case DeclarationNode::Union: 980 ret = new UnionInstType( buildQualifiers( type ), *type->aggregate.name );984 ret = new UnionInstType( buildQualifiers( type ), type->aggregate.name ); 981 985 break; 982 986 case DeclarationNode::Trait: 983 ret = new TraitInstType( buildQualifiers( type ), *type->aggregate.name );987 ret = new TraitInstType( buildQualifiers( type ), type->aggregate.name ); 984 988 break; 985 989 default: … … 990 994 } 991 995 case TypeData::Symbolic: { 992 TypeInstType * ret = new TypeInstType( buildQualifiers( type ), *type->symbolic.name, false );996 TypeInstType *ret = new TypeInstType( buildQualifiers( type ), type->symbolic.name, false ); 993 997 buildList( type->symbolic.actuals, ret->get_parameters() ); 998 return ret; 999 } 1000 case TypeData::Attr: { 1001 assert( type->kind == TypeData::Attr ); 1002 // assert( type->attr ); 1003 AttrType * ret; 1004 if ( attr.expr ) { 1005 ret = new AttrType( buildQualifiers( type ), attr.name, attr.expr->build() ); 1006 } else { 1007 assert( attr.type ); 1008 ret = new AttrType( buildQualifiers( type ), attr.name, attr.type->buildType() ); 1009 } // if 994 1010 return ret; 995 1011 } -
src/Parser/ExpressionNode.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 16 16:27:44201613 // Update Count : 50 812 // Last Modified On : Thu Aug 25 21:39:40 2016 13 // Update Count : 503 14 14 // 15 15 … … 31 31 32 32 using namespace std; 33 34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.get_name() ), extension( other.extension ) {} 33 35 34 36 //############################################################################## -
src/Parser/InitializerNode.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:20:24 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:09:51201613 // Update Count : 2 112 // Last Modified On : Mon Aug 15 18:27:02 2016 13 // Update Count : 20 14 14 // 15 15 … … 23 23 24 24 InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des ) 25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 26 26 if ( aggrp ) 27 27 kids = dynamic_cast< InitializerNode * >( get_next() ); … … 32 32 33 33 InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des ) 34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 35 35 if ( init != 0 ) 36 36 set_last( init ); … … 79 79 80 80 Initializer *InitializerNode::build() const { 81 // if ( get_expression() == 0 ) return 0; // XXX (?) 82 81 83 if ( aggregate ) { 84 //assert( next_init() != 0 ); 85 82 86 std::list< Initializer * > initlist; 83 87 buildList< Initializer, InitializerNode >( next_init(), initlist ); -
src/Parser/LinkageSpec.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:22:09 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Oct 2 23:16:21201613 // Update Count : 2312 // Last Modified On : Sun Aug 21 12:32:53 2016 13 // Update Count : 17 14 14 // 15 15 … … 17 17 #include <string> 18 18 #include <cassert> 19 using namespace std;20 19 21 20 #include "LinkageSpec.h" 22 21 #include "Common/SemanticError.h" 23 22 24 LinkageSpec::Spec LinkageSpec:: linkageCheck( const string *spec ) {25 unique_ptr<const string> guard( spec );// allocated by lexer26 if ( *spec == "\"Cforall\"" ) {23 LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) { 24 std::unique_ptr<const std::string> guard(&spec); // allocated by lexer 25 if ( spec == "\"Cforall\"" ) { 27 26 return Cforall; 28 } else if ( *spec == "\"C\"" ) {27 } else if ( spec == "\"C\"" ) { 29 28 return C; 30 29 } else { 31 throw SemanticError( "Invalid linkage specifier " + *spec );30 throw SemanticError( "Invalid linkage specifier " + spec ); 32 31 } // if 33 32 } 34 33 35 st ring LinkageSpec::linkageName( LinkageSpec::Spec linkage ) {36 assert( 0 <= linkage&& linkage < LinkageSpec::NoOfSpecs );34 std::string LinkageSpec::toString( LinkageSpec::Spec linkage ) { 35 assert( linkage >= 0 && linkage < LinkageSpec::NoOfSpecs ); 37 36 static const char *linkageKinds[LinkageSpec::NoOfSpecs] = { 38 37 "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in", … … 42 41 43 42 bool LinkageSpec::isDecoratable( Spec spec ) { 44 assert( 0 <= spec&& spec < LinkageSpec::NoOfSpecs );43 assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs ); 45 44 static bool decoratable[LinkageSpec::NoOfSpecs] = { 46 45 // Intrinsic, Cforall, C, AutoGen, Compiler … … 51 50 52 51 bool LinkageSpec::isGeneratable( Spec spec ) { 53 assert( 0 <= spec&& spec < LinkageSpec::NoOfSpecs );52 assert( spec >= 0 && spec < LinkageSpec::NoOfSpecs ); 54 53 static bool generatable[LinkageSpec::NoOfSpecs] = { 55 54 // Intrinsic, Cforall, C, AutoGen, Compiler -
src/Parser/LinkageSpec.h
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:24:28 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:03:17201613 // Update Count : 1112 // Last Modified On : Sat Aug 20 19:22:23 2016 13 // Update Count : 8 14 14 // 15 15 … … 29 29 }; 30 30 31 static Spec linkageCheck( const std::string *);32 static std::string linkageName( Spec );31 static Spec fromString( const std::string & ); 32 static std::string toString( Spec ); 33 33 34 34 static bool isDecoratable( Spec ); -
src/Parser/ParseNode.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:10:43201613 // Update Count : 12 712 // Last Modified On : Wed Aug 17 23:14:16 2016 13 // Update Count : 126 14 14 // 15 15 … … 20 20 21 21 std::ostream & operator<<( std::ostream & out, const ParseNode * node ) { 22 node->print( out );23 return out;22 node->print( out ); 23 return out; 24 24 } 25 25 -
src/Parser/ParseNode.h
r7756647 rac9ca967 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08201613 // Update Count : 6 3612 // Last Modified On : Mon Sep 12 08:00:05 2016 13 // Update Count : 603 14 14 // 15 15 … … 41 41 public: 42 42 ParseNode() {}; 43 virtual ~ParseNode() { delete next; delete name; }; 43 ParseNode( const std::string * name ) : name( * name ) { assert( false ); delete name; } 44 ParseNode( const std::string &name ) : name( name ) { assert( false ); } 45 virtual ~ParseNode() { delete next; }; 44 46 virtual ParseNode * clone() const = 0; 45 47 46 48 ParseNode * get_next() const { return next; } 47 49 ParseNode * set_next( ParseNode * newlink ) { next = newlink; return this; } 48 49 50 ParseNode * get_last() { 50 51 ParseNode * current; 51 for ( current = this; current->get_next() != nullptr; current = current->get_next() );52 for ( current = this; current->get_next() != 0; current = current->get_next() ); 52 53 return current; 53 54 } 54 55 ParseNode * set_last( ParseNode * newlast ) { 55 if ( newlast != nullptr) get_last()->set_next( newlast );56 if ( newlast != 0 ) get_last()->set_next( newlast ); 56 57 return this; 57 58 } 59 60 const std::string &get_name() const { return name; } 61 void set_name( const std::string &newValue ) { name = newValue; } 58 62 59 63 virtual void print( std::ostream &os, int indent = 0 ) const {} 60 64 virtual void printList( std::ostream &os, int indent = 0 ) const {} 61 65 private: 62 66 static int indent_by; 63 67 64 68 ParseNode * next = nullptr; 65 std::string * name = nullptr;69 std::string name; 66 70 }; // ParseNode 67 71 … … 70 74 class InitializerNode : public ParseNode { 71 75 public: 72 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = nullptr);73 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr);76 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = 0 ); 77 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = 0 ); 74 78 ~InitializerNode(); 75 79 virtual InitializerNode * clone() const { assert( false ); return nullptr; } … … 102 106 public: 103 107 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} 108 ExpressionNode( Expression * expr, const std::string * name ) : ParseNode( name ), expr( expr ) {} 104 109 ExpressionNode( const ExpressionNode &other ); 105 110 virtual ~ExpressionNode() {} … … 178 183 Expression * build_attrexpr( NameExpr * var, ExpressionNode * expr_node ); 179 184 Expression * build_attrtype( NameExpr * var, DeclarationNode * decl_node ); 180 Expression * build_tuple( ExpressionNode * expr_node = nullptr);185 Expression * build_tuple( ExpressionNode * expr_node = 0 ); 181 186 Expression * build_func( ExpressionNode * function, ExpressionNode * expr_node ); 182 187 Expression * build_range( ExpressionNode * low, ExpressionNode * high ); … … 198 203 enum Signedness { Signed, Unsigned, NoSignedness }; 199 204 enum Length { Short, Long, LongLong, NoLength }; 200 enum Aggregate { Struct, Union, Trait , NoAggregate};201 enum TypeClass { Otype, Dtype, Ftype , NoTypeClass};205 enum Aggregate { Struct, Union, Trait }; 206 enum TypeClass { Otype, Dtype, Ftype }; 202 207 enum BuiltinType { Valist }; 203 208 … … 214 219 static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle = false ); 215 220 static DeclarationNode * newQualifier( Qualifier ); 216 static DeclarationNode * newForall( DeclarationNode * );221 static DeclarationNode * newForall( DeclarationNode *); 217 222 static DeclarationNode * newStorageClass( StorageClass ); 218 223 static DeclarationNode * newBasicType( BasicType ); … … 221 226 static DeclarationNode * newLength( Length lnth ); 222 227 static DeclarationNode * newBuiltinType( BuiltinType ); 223 static DeclarationNode * newFromTypedef( std::string * );228 static DeclarationNode * newFromTypedef( std::string *); 224 229 static DeclarationNode * newAggregate( Aggregate kind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body ); 225 230 static DeclarationNode * newEnum( std::string * name, DeclarationNode * constants ); 226 231 static DeclarationNode * newEnumConstant( std::string * name, ExpressionNode * constant ); 227 static DeclarationNode * newName( std::string * );232 static DeclarationNode * newName( std::string *); 228 233 static DeclarationNode * newFromTypeGen( std::string *, ExpressionNode * params ); 229 static DeclarationNode * newTypeParam( TypeClass, std::string * );230 static DeclarationNode * newTrait( conststd::string * name, DeclarationNode * params, DeclarationNode * asserts );231 static DeclarationNode * newTraitUse( conststd::string * name, ExpressionNode * params );234 static DeclarationNode * newTypeParam( TypeClass, std::string *); 235 static DeclarationNode * newTrait( std::string * name, DeclarationNode * params, DeclarationNode * asserts ); 236 static DeclarationNode * newTraitUse( std::string * name, ExpressionNode * params ); 232 237 static DeclarationNode * newTypeDecl( std::string * name, DeclarationNode * typeParams ); 233 238 static DeclarationNode * newPointer( DeclarationNode * qualifiers ); … … 244 249 DeclarationNode * clone() const; 245 250 246 DeclarationNode * addQualifiers( DeclarationNode * );251 DeclarationNode * addQualifiers( DeclarationNode *); 247 252 void checkQualifiers( const TypeData *, const TypeData * ); 248 void checkStorageClasses( DeclarationNode * );249 DeclarationNode * copyStorageClasses( DeclarationNode * );250 DeclarationNode * addType( DeclarationNode * );253 void checkStorageClasses( DeclarationNode *q ); 254 DeclarationNode * copyStorageClasses( DeclarationNode *); 255 DeclarationNode * addType( DeclarationNode *); 251 256 DeclarationNode * addTypedef(); 252 DeclarationNode * addAssertions( DeclarationNode * );253 DeclarationNode * addName( std::string * );257 DeclarationNode * addAssertions( DeclarationNode *); 258 DeclarationNode * addName( std::string *); 254 259 DeclarationNode * addBitfield( ExpressionNode * size ); 255 260 DeclarationNode * addVarArgs(); … … 265 270 266 271 DeclarationNode * cloneType( std::string * newName ); 272 DeclarationNode * cloneType( DeclarationNode * existing ); 273 DeclarationNode * cloneType( int ) { return cloneType( ( std::string *)0 ); } 274 DeclarationNode * cloneBaseType( std::string * newName ); 267 275 DeclarationNode * cloneBaseType( DeclarationNode * newdecl ); 268 276 … … 278 286 279 287 bool get_hasEllipsis() const; 288 const std::string &get_name() const { return name; } 280 289 LinkageSpec::Spec get_linkage() const { return linkage; } 281 290 DeclarationNode * extractAggregate() const; … … 286 295 DeclarationNode * set_extension( bool exten ) { extension = exten; return this; } 287 296 public: 297 // StorageClass buildStorageClass() const; 298 // bool buildFuncSpecifier( StorageClass key ) const; 299 288 300 struct Variable_t { 289 // const std::string * name;290 301 DeclarationNode::TypeClass tyClass; 302 std::string name; 291 303 DeclarationNode * assertions; 292 304 }; … … 294 306 295 307 struct Attr_t { 296 // const std::string *name;308 std::string name; 297 309 ExpressionNode * expr; 298 310 DeclarationNode * type; … … 303 315 304 316 TypeData * type; 317 std::string name; 305 318 StorageClass storageClass; 306 319 bool isInline, isNoreturn; … … 318 331 319 332 Type * buildType( TypeData * type ); 333 //Type::Qualifiers buildQualifiers( const TypeData::Qualifiers & qualifiers ); 320 334 321 335 static inline Type * maybeMoveBuildType( const DeclarationNode * orig ) { … … 379 393 Statement * build_finally( StatementNode * stmt ); 380 394 Statement * build_compound( StatementNode * first ); 381 Statement * build_asmstmt( bool voltile, ConstantExpr * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr);395 Statement * build_asmstmt( bool voltile, ConstantExpr * instruction, ExpressionNode * output = 0, ExpressionNode * input = 0, ExpressionNode * clobber = 0, LabelNode * gotolabels = 0 ); 382 396 383 397 //############################################################################## -
src/Parser/TypeData.cc
r7756647 rac9ca967 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 24 11:14:26201613 // Update Count : 41512 // Last Modified On : Mon Sep 12 21:11:22 2016 13 // Update Count : 377 14 14 // 15 15 … … 24 24 #include "SynTree/Statement.h" 25 25 #include "SynTree/Initializer.h" 26 using namespace std; 27 28 TypeData::TypeData( Kind k ) : kind( k ), base( nullptr ), forall( nullptr ) { 26 27 TypeData::TypeData( Kind k ) : kind( k ), base( 0 ), forall( 0 ) { 29 28 switch ( kind ) { 30 29 case Unknown: … … 38 37 case Array: 39 38 // array = new Array_t; 40 array.dimension = nullptr;39 array.dimension = 0; 41 40 array.isVarLen = false; 42 41 array.isStatic = false; … … 44 43 case Function: 45 44 // function = new Function_t; 46 function.params = nullptr;47 function.idList = nullptr;48 function.oldDeclList = nullptr;49 function.body = nullptr;45 function.params = 0; 46 function.idList = 0; 47 function.oldDeclList = 0; 48 function.body = 0; 50 49 function.hasBody = false; 51 50 function.newStyle = false; … … 53 52 case Aggregate: 54 53 // aggregate = new Aggregate_t; 55 aggregate.name = nullptr; 56 aggregate.params = nullptr; 57 aggregate.actuals = nullptr; 58 aggregate.fields = nullptr; 54 aggregate.params = 0; 55 aggregate.actuals = 0; 56 aggregate.fields = 0; 59 57 break; 60 58 case AggregateInst: 61 59 // aggInst = new AggInst_t; 62 aggInst.aggregate = nullptr;63 aggInst.params = nullptr;60 aggInst.aggregate = 0; 61 aggInst.params = 0; 64 62 break; 65 63 case Enum: 66 64 // enumeration = new Enumeration_t; 67 enumeration.name = nullptr; 68 enumeration.constants = nullptr; 65 enumeration.constants = 0; 69 66 break; 70 67 case Symbolic: 71 68 case SymbolicInst: 72 69 // symbolic = new Symbolic_t; 73 symbolic.name = nullptr; 74 symbolic.params = nullptr; 75 symbolic.actuals = nullptr; 76 symbolic.assertions = nullptr; 70 symbolic.params = 0; 71 symbolic.actuals = 0; 72 symbolic.assertions = 0; 73 break; 74 case Variable: 75 // variable = new Variable_t; 76 // variable.tyClass = DeclarationNode::Type; 77 // variable.assertions = 0; 77 78 break; 78 79 case Tuple: … … 83 84 // typeexpr = new Typeof_t; 84 85 typeexpr = nullptr; 86 break; 87 case Attr: 88 // attr = new Attr_t; 89 // attr.expr = nullptr; 90 // attr.type = nullptr; 85 91 break; 86 92 case Builtin: … … 115 121 break; 116 122 case Aggregate: 117 delete aggregate.name;118 123 delete aggregate.params; 119 124 delete aggregate.actuals; … … 127 132 break; 128 133 case Enum: 129 delete enumeration.name;130 134 delete enumeration.constants; 131 135 // delete enumeration; … … 133 137 case Symbolic: 134 138 case SymbolicInst: 135 delete symbolic.name;136 139 delete symbolic.params; 137 140 delete symbolic.actuals; … … 139 142 // delete symbolic; 140 143 break; 144 case Variable: 145 // delete variable.assertions; 146 // delete variable; 147 break; 141 148 case Tuple: 142 149 // delete tuple->members; … … 146 153 // delete typeexpr->expr; 147 154 delete typeexpr; 155 break; 156 case Attr: 157 // delete attr.expr; 158 // delete attr.type; 159 // delete attr; 148 160 break; 149 161 case Builtin: … … 185 197 break; 186 198 case Aggregate: 187 newtype->aggregate.name = aggregate.name ? new string( *aggregate.name ) : nullptr;188 199 newtype->aggregate.params = maybeClone( aggregate.params ); 189 200 newtype->aggregate.actuals = maybeClone( aggregate.actuals ); 190 201 newtype->aggregate.fields = maybeClone( aggregate.fields ); 202 newtype->aggregate.name = aggregate.name; 191 203 newtype->aggregate.kind = aggregate.kind; 192 204 newtype->aggregate.body = aggregate.body; … … 197 209 break; 198 210 case Enum: 199 newtype->enumeration.name = enumeration.name ? new string( *enumeration.name ) : nullptr;211 newtype->enumeration.name = enumeration.name; 200 212 newtype->enumeration.constants = maybeClone( enumeration.constants ); 201 213 break; 202 214 case Symbolic: 203 215 case SymbolicInst: 204 newtype->symbolic.name = symbolic.name ? new string( *symbolic.name ) : nullptr;205 216 newtype->symbolic.params = maybeClone( symbolic.params ); 206 217 newtype->symbolic.actuals = maybeClone( symbolic.actuals ); 207 218 newtype->symbolic.assertions = maybeClone( symbolic.assertions ); 208 219 newtype->symbolic.isTypedef = symbolic.isTypedef; 220 newtype->symbolic.name = symbolic.name; 221 break; 222 case Variable: 223 assert( false ); 224 // newtype->variable.assertions = maybeClone( variable.assertions ); 225 // newtype->variable.name = variable.name; 226 // newtype->variable.tyClass = variable.tyClass; 209 227 break; 210 228 case Tuple: … … 213 231 case Typeof: 214 232 newtype->typeexpr = maybeClone( typeexpr ); 233 break; 234 case Attr: 235 assert( false ); 236 // newtype->attr.expr = maybeClone( attr.expr ); 237 // newtype->attr.type = maybeClone( attr.type ); 215 238 break; 216 239 case Builtin: … … 222 245 } // TypeData::clone 223 246 224 void TypeData::print( ostream &os, int indent ) const { 247 void TypeData::print( std::ostream &os, int indent ) const { 248 using std::endl; 249 using std::string; 250 225 251 for ( int i = 0; i < DeclarationNode::NoQualifier; i += 1 ) { 226 252 if ( qualifiers[i] ) os << DeclarationNode::qualifierName[ i ] << ' '; … … 300 326 break; 301 327 case Aggregate: 302 os << DeclarationNode::aggregateName[ aggregate.kind ] << ' ' << *aggregate.name << endl;328 os << DeclarationNode::aggregateName[ aggregate.kind ] << ' ' << aggregate.name << endl; 303 329 if ( aggregate.params ) { 304 330 os << string( indent + 2, ' ' ) << "with type parameters " << endl; … … 337 363 break; 338 364 case SymbolicInst: 339 os << "instance of type " << *symbolic.name;365 os << "instance of type " << symbolic.name; 340 366 if ( symbolic.actuals ) { 341 367 os << " with parameters" << endl; … … 363 389 } // if 364 390 break; 391 case Variable: 392 // os << DeclarationNode::typeClassName[ variable.tyClass ] << " variable "; 393 // if ( variable.assertions ) { 394 // os << endl << string( indent + 2, ' ' ) << "with assertions" << endl; 395 // variable.assertions->printList( os, indent + 4 ); 396 // os << string( indent + 2, ' ' ); 397 // } // if 398 break; 365 399 case Tuple: 366 400 os << "tuple "; … … 375 409 typeexpr->print( os, indent + 2 ); 376 410 } // if 411 break; 412 case Attr: 413 // os << "attribute type decl " << attr.name << " applied to "; 414 // if ( attr.expr ) { 415 // attr.expr->print( os, indent + 2 ); 416 // } // if 417 // if ( attr.type ) { 418 // attr.type->print( os, indent + 2 ); 419 // } // if 377 420 break; 378 421 case Builtin: … … 394 437 // add dtor: void ^?{}(T *) 395 438 FunctionType * dtorType = new FunctionType( Type::Qualifiers(), false ); 396 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr) );397 td->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, nullptr, false, false ) );439 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0 ) ); 440 td->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) ); 398 441 399 442 // add copy ctor: void ?{}(T *, T) 400 443 FunctionType * copyCtorType = new FunctionType( Type::Qualifiers(), false ); 401 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr) );402 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr) );403 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, nullptr, false, false ) );444 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0 ) ); 445 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0 ) ); 446 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, 0, false, false ) ); 404 447 405 448 // add default ctor: void ?{}(T *) 406 449 FunctionType * ctorType = new FunctionType( Type::Qualifiers(), false ); 407 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr) );408 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, nullptr, false, false ) );450 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0 ) ); 451 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) ); 409 452 410 453 // add assignment operator: T * ?=?(T *, T) 411 454 FunctionType * assignType = new FunctionType( Type::Qualifiers(), false ); 412 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr) );413 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr) );414 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr) );415 td->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, nullptr, false, false ) );455 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0 ) ); 456 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0 ) ); 457 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0 ) ); 458 td->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false, false ) ); 416 459 } // if 417 460 } // for … … 445 488 case TypeData::Builtin: 446 489 return new VarArgsType( buildQualifiers( td ) ); 490 case TypeData::Attr: 491 assert( false ); 492 return buildAttr( td ); 447 493 case TypeData::Symbolic: 448 494 case TypeData::Enum: 449 495 case TypeData::Aggregate: 496 case TypeData::Variable: 450 497 assert( false ); 451 498 } // switch 452 return nullptr;499 return 0; 453 500 } // typebuild 454 501 455 502 TypeData * typeextractAggregate( const TypeData * td, bool toplevel ) { 456 TypeData * ret = nullptr;503 TypeData * ret = 0; 457 504 458 505 switch ( td->kind ) { … … 504 551 case DeclarationNode::Bool: 505 552 if ( td->signedness != DeclarationNode::NoSignedness ) { 506 throw SemanticError( st ring( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td );553 throw SemanticError( std::string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td ); 507 554 } // if 508 555 if ( td->length != DeclarationNode::NoLength ) { 509 throw SemanticError( st ring( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );556 throw SemanticError( std::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 510 557 } // if 511 558 … … 520 567 521 568 if ( td->length != DeclarationNode::NoLength ) { 522 throw SemanticError( st ring( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );569 throw SemanticError( std::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 523 570 } // if 524 571 … … 550 597 FloatingPoint: ; 551 598 if ( td->signedness != DeclarationNode::NoSignedness ) { 552 throw SemanticError( st ring( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td );599 throw SemanticError( std::string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td ); 553 600 } // if 554 601 if ( td->length == DeclarationNode::Short || td->length == DeclarationNode::LongLong ) { 555 throw SemanticError( st ring( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );602 throw SemanticError( std::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 556 603 } // if 557 604 if ( td->basictype == DeclarationNode::Float && td->length == DeclarationNode::Long ) { … … 610 657 switch ( td->aggregate.kind ) { 611 658 case DeclarationNode::Struct: 612 at = new StructDecl( *td->aggregate.name );659 at = new StructDecl( td->aggregate.name ); 613 660 buildForall( td->aggregate.params, at->get_parameters() ); 614 661 break; 615 662 case DeclarationNode::Union: 616 at = new UnionDecl( *td->aggregate.name );663 at = new UnionDecl( td->aggregate.name ); 617 664 buildForall( td->aggregate.params, at->get_parameters() ); 618 665 break; 619 666 case DeclarationNode::Trait: 620 at = new TraitDecl( *td->aggregate.name );667 at = new TraitDecl( td->aggregate.name ); 621 668 buildList( td->aggregate.params, at->get_parameters() ); 622 669 break; … … 636 683 ReferenceToType * ret; 637 684 if ( td->aggInst.aggregate->kind == TypeData::Enum ) { 638 ret = new EnumInstType( buildQualifiers( td ), *td->aggInst.aggregate->enumeration.name );685 ret = new EnumInstType( buildQualifiers( td ), td->aggInst.aggregate->enumeration.name ); 639 686 } else { 640 687 assert( td->aggInst.aggregate->kind == TypeData::Aggregate ); 641 688 switch ( td->aggInst.aggregate->aggregate.kind ) { 642 689 case DeclarationNode::Struct: 643 assert( td->aggInst.aggregate->aggregate.name ); 644 ret = new StructInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name ); 690 ret = new StructInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name ); 645 691 break; 646 692 case DeclarationNode::Union: 647 ret = new UnionInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name );693 ret = new UnionInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name ); 648 694 break; 649 695 case DeclarationNode::Trait: 650 ret = new TraitInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name );696 ret = new TraitInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name ); 651 697 break; 652 698 default: … … 659 705 } // buildAggInst 660 706 661 NamedTypeDecl * buildSymbolic( const TypeData * td, const st ring & name, DeclarationNode::StorageClass sc ) {707 NamedTypeDecl * buildSymbolic( const TypeData * td, const std::string & name, DeclarationNode::StorageClass sc ) { 662 708 assert( td->kind == TypeData::Symbolic ); 663 709 NamedTypeDecl * ret; … … 673 719 } // buildSymbolic 674 720 721 TypeDecl * buildVariable( const TypeData * td ) { 722 assert( false ); 723 return nullptr; 724 // assert( td->kind == TypeData::Variable ); 725 // static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 726 727 // TypeDecl * ret = new TypeDecl( td->variable.name, DeclarationNode::NoStorageClass, 0, kindMap[ td->variable.tyClass ] ); 728 // buildList( td->variable.assertions, ret->get_assertions() ); 729 // return ret; 730 } // buildSymbolic 731 675 732 EnumDecl * buildEnum( const TypeData * td ) { 676 733 assert( td->kind == TypeData::Enum ); 677 EnumDecl * ret = new EnumDecl( *td->enumeration.name );734 EnumDecl * ret = new EnumDecl( td->enumeration.name ); 678 735 buildList( td->enumeration.constants, ret->get_members() ); 679 list< Declaration * >::iterator members = ret->get_members().begin();736 std::list< Declaration * >::iterator members = ret->get_members().begin(); 680 737 for ( const DeclarationNode * cur = td->enumeration. constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) { 681 738 if ( cur->has_enumeratorValue() ) { 682 739 ObjectDecl * member = dynamic_cast< ObjectDecl * >(* members); 683 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), list< Expression * >() ) );740 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) ); 684 741 } // if 685 742 } // for … … 689 746 TypeInstType * buildSymbolicInst( const TypeData * td ) { 690 747 assert( td->kind == TypeData::SymbolicInst ); 691 TypeInstType * ret = new TypeInstType( buildQualifiers( td ), *td->symbolic.name, false );748 TypeInstType * ret = new TypeInstType( buildQualifiers( td ), td->symbolic.name, false ); 692 749 buildList( td->symbolic.actuals, ret->get_parameters() ); 693 750 buildForall( td->forall, ret->get_forall() ); … … 710 767 } // buildTypeof 711 768 712 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) { 769 AttrType * buildAttr( const TypeData * td ) { 770 assert( false ); 771 return nullptr; 772 // assert( td->kind == TypeData::Attr ); 773 // // assert( td->attr ); 774 // AttrType * ret; 775 // if ( td->attr.expr ) { 776 // ret = new AttrType( buildQualifiers( td ), td->attr.name, td->attr.expr->build() ); 777 // } else { 778 // assert( td->attr.type ); 779 // ret = new AttrType( buildQualifiers( td ), td->attr.name, td->attr.type->buildType() ); 780 // } // if 781 // return ret; 782 } // buildAttr 783 784 Declaration * buildDecl( const TypeData * td, std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) { 713 785 if ( td->kind == TypeData::Function ) { 714 786 FunctionDecl * decl; … … 720 792 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn ); 721 793 } else { 722 // list< Label > ls;723 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn );794 // std::list< Label > ls; 795 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( std::list< Label >() ), isInline, isNoreturn ); 724 796 } // if 725 797 } else { 726 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn );727 } // if 728 for ( DeclarationNode * cur = td->function.idList; cur != nullptr; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) {729 if ( cur-> name) {730 decl->get_oldIdents().insert( decl->get_oldIdents().end(), *cur->name);798 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), 0, isInline, isNoreturn ); 799 } // if 800 for ( DeclarationNode * cur = td->function.idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) { 801 if ( cur->get_name() != "" ) { 802 decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name() ); 731 803 } // if 732 804 } // for … … 739 811 } else if ( td->kind == TypeData::Symbolic ) { 740 812 return buildSymbolic( td, name, sc ); 813 } else if ( td->kind == TypeData::Variable ) { 814 assert( false ); 815 return buildVariable( td ); 741 816 } else { 742 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn );817 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, std::list< Attribute * >(), isInline, isNoreturn ); 743 818 } // if 744 return nullptr;819 return 0; 745 820 } // buildDecl 746 821 … … 758 833 break; 759 834 default: 760 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall ) ) );835 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) ); 761 836 } // switch 762 837 } else { 763 ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr) );838 ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ) ); 764 839 } // if 765 840 return ft; -
src/Parser/TypeData.h
r7756647 rac9ca967 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 12:34:08201613 // Update Count : 1 4212 // Last Modified On : Mon Sep 12 17:15:49 2016 13 // Update Count : 129 14 14 // 15 15 … … 23 23 24 24 struct TypeData { 25 enum Kind { Basic, Pointer, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,26 SymbolicInst, Tuple, Typeof, Builtin, Unknown};25 enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst, 26 Enum, EnumConstant, Symbolic, SymbolicInst, Variable, Tuple, Typeof, Builtin, Attr }; 27 27 28 28 struct Aggregate_t { 29 29 DeclarationNode::Aggregate kind; 30 const std::string *name;30 std::string name; 31 31 DeclarationNode * params; 32 ExpressionNode * actuals; // holds actual parameters later applied to AggInst32 ExpressionNode * actuals; // holds actual parameters later applied to AggInst 33 33 DeclarationNode * fields; 34 34 bool body; … … 47 47 48 48 struct Enumeration_t { 49 const std::string *name;49 std::string name; 50 50 DeclarationNode * constants; 51 51 }; … … 61 61 62 62 struct Symbolic_t { 63 const std::string *name;63 std::string name; 64 64 bool isTypedef; // false => TYPEGENname, true => TYPEDEFname 65 65 DeclarationNode * params; … … 88 88 DeclarationNode * tuple; 89 89 ExpressionNode * typeexpr; 90 // Attr_t attr; 90 91 // DeclarationNode::BuiltinType builtin; 91 92 … … 110 111 TupleType * buildTuple( const TypeData * ); 111 112 TypeofType * buildTypeof( const TypeData * ); 112 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = nullptr ); 113 AttrType * buildAttr( const TypeData * ); 114 Declaration * buildDecl( const TypeData *, std::string, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = 0 ); 113 115 FunctionType * buildFunction( const TypeData * ); 114 116 -
src/Parser/parser.cc
r7756647 rac9ca967 82 82 #include "TypeData.h" 83 83 #include "LinkageSpec.h" 84 using namespace std;85 84 86 85 extern DeclarationNode * parseTree; … … 88 87 extern TypedefTable typedefTable; 89 88 90 st ack< LinkageSpec::Spec > linkageStack;91 92 void appendStr( st ring *to,string *from ) {89 std::stack< LinkageSpec::Spec > linkageStack; 90 91 void appendStr( std::string *to, std::string *from ) { 93 92 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 94 93 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); … … 97 96 98 97 /* Line 268 of yacc.c */ 99 #line 100"Parser/parser.cc"98 #line 99 "Parser/parser.cc" 100 99 101 100 /* Enabling traces. */ … … 348 347 349 348 /* Line 293 of yacc.c */ 350 #line 11 6"parser.yy"349 #line 115 "parser.yy" 351 350 352 351 Token tok; … … 368 367 369 368 /* Line 293 of yacc.c */ 370 #line 37 1"Parser/parser.cc"369 #line 370 "Parser/parser.cc" 371 370 } YYSTYPE; 372 371 # define YYSTYPE_IS_TRIVIAL 1 … … 380 379 381 380 /* Line 343 of yacc.c */ 382 #line 38 3"Parser/parser.cc"381 #line 382 "Parser/parser.cc" 383 382 384 383 #ifdef short … … 599 598 #define YYFINAL 250 600 599 /* YYLAST -- Last index in YYTABLE. */ 601 #define YYLAST 108 88600 #define YYLAST 10863 602 601 603 602 /* YYNTOKENS -- Number of terminals. */ 604 603 #define YYNTOKENS 133 605 604 /* YYNNTS -- Number of nonterminals. */ 606 #define YYNNTS 24 2605 #define YYNNTS 241 607 606 /* YYNRULES -- Number of rules. */ 608 #define YYNRULES 75 4607 #define YYNRULES 751 609 608 /* YYNRULES -- Number of states. */ 610 #define YYNSTATES 155 8609 #define YYNSTATES 1555 611 610 612 611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 667 666 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 668 667 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 669 8 2, 90, 93, 96, 104, 109, 111, 115, 116, 118,670 120, 12 4, 126, 130, 138, 142, 150, 152, 154, 156,671 158, 16 0, 163, 166, 169, 172, 175, 178, 183, 186,672 19 1, 198, 200, 205, 210, 212, 214, 216, 218, 220,673 22 2, 224, 229, 234, 236, 240, 244, 248, 250, 254,674 2 58, 260, 264, 268, 270, 274, 278, 282, 286, 288,675 29 2, 296, 298, 302, 304, 308, 310, 314, 316, 320,676 32 2, 326, 328, 334, 339, 345, 347, 349, 353, 356,677 35 7, 359, 361, 363, 365, 367, 369, 371, 373, 375,678 37 7, 379, 381, 383, 386, 392, 399, 407, 409, 413,679 41 5, 419, 420, 422, 424, 426, 428, 430, 432, 434,680 4 36, 438, 445, 450, 453, 461, 463, 467, 469, 472,681 474, 477, 4 79, 482, 485, 491, 499, 505, 515, 521,682 531, 533, 537, 5 39, 541, 545, 549, 552, 554, 557,683 5 60, 561, 563, 566, 570, 571, 573, 576, 580, 584,684 58 9, 590, 592, 594, 597, 603, 611, 618, 625, 630,685 63 4, 639, 642, 646, 649, 653, 657, 661, 665, 671,686 67 5, 679, 684, 686, 692, 699, 705, 712, 722, 733,687 7 43, 754, 757, 759, 762, 765, 768, 770, 777, 786,688 797, 810, 825, 826, 828, 829, 831, 833, 837, 842,689 8 50, 851, 853, 857, 859, 863, 865, 867, 869, 873,690 875, 87 7, 879, 883, 884, 886, 890, 895, 897, 901,691 90 3, 905, 909, 913, 917, 921, 925, 928, 932, 939,692 94 3, 947, 952, 954, 957, 960, 964, 970, 979, 987,693 995, 1001, 1011, 1014, 1017, 1023, 1027, 1033, 1038, 1042,694 10 47, 1052, 1060, 1064, 1068, 1072, 1076, 1081, 1088, 1090,695 109 2, 1094, 1096, 1098, 1100, 1102, 1104, 1105, 1107, 1109,696 111 2, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1127, 1133,697 113 5, 1138, 1142, 1144, 1147, 1149, 1151, 1153, 1155, 1157,698 115 9, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 1177,699 117 9, 1181, 1183, 1185, 1187, 1189, 1191, 1194, 1197, 1201,700 1205, 120 7, 1211, 1213, 1216, 1219, 1222, 1227, 1232, 1237,701 1242, 124 4, 1247, 1250, 1254, 1256, 1259, 1262, 1264, 1267,702 127 0, 1274, 1276, 1279, 1282, 1284, 1286, 1291, 1294, 1295,703 130 2, 1310, 1313, 1316, 1319, 1320, 1323, 1326, 1330, 1333,704 133 7, 1339, 1342, 1346, 1349, 1352, 1357, 1358, 1360, 1363,705 136 6, 1368, 1369, 1371, 1374, 1377, 1383, 1386, 1387, 1395,706 139 8, 1403, 1404, 1407, 1408, 1410, 1412, 1414, 1420, 1426,707 143 2, 1434, 1440, 1446, 1456, 1458, 1464, 1465, 1467, 1469,708 147 5, 1477, 1479, 1485, 1491, 1493, 1497, 1501, 1506, 1508,709 15 10, 1512, 1514, 1517, 1519, 1523, 1527, 1529, 1532, 1534,710 153 8, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556,711 155 8, 1560, 1563, 1565, 1567, 1569, 1572, 1573, 1576, 1579,712 1581, 158 6, 1587, 1589, 1592, 1596, 1601, 1604, 1607, 1609,713 161 2, 1615, 1621, 1627, 1635, 1642, 1644, 1647, 1650, 1654,714 165 6, 1659, 1662, 1667, 1670, 1675, 1676, 1681, 1684, 1686,715 168 8, 1690, 1691, 1694, 1700, 1706, 1720, 1722, 1724, 1728,716 173 2, 1735, 1739, 1743, 1746, 1751, 1753, 1760, 1770, 1771,717 178 3, 1785, 1789, 1793, 1797, 1799, 1801, 1807, 1810, 1816,718 1817, 181 9, 1821, 1825, 1826, 1828, 1830, 1832, 1834, 1835,719 1842, 184 5, 1847, 1850, 1855, 1858, 1862, 1866, 1870, 1875,720 18 81, 1887, 1893, 1900, 1902, 1904, 1906, 1910, 1911, 1917,721 191 8, 1920, 1922, 1925, 1932, 1934, 1938, 1939, 1941, 1946,722 194 8, 1950, 1952, 1954, 1957, 1959, 1962, 1965, 1967, 1971,723 197 4, 1978, 1982, 1985, 1990, 1995, 1999, 2008, 2012, 2015,724 20 17, 2020, 2027, 2036, 2040, 2043, 2047, 2051, 2056, 2061,725 206 5, 2067, 2069, 2071, 2076, 2083, 2087, 2090, 2094, 2098,726 210 3, 2108, 2112, 2115, 2117, 2120, 2123, 2125, 2129, 2132,727 21 36, 2140, 2143, 2148, 2153, 2157, 2164, 2173, 2177, 2180,728 218 2, 2185, 2188, 2191, 2195, 2199, 2202, 2207, 2212, 2216,729 22 23, 2232, 2236, 2239, 2241, 2244, 2247, 2249, 2251, 2254,730 22 58, 2262, 2265, 2270, 2277, 2286, 2288, 2291, 2294, 2296,731 2 299, 2302, 2306, 2310, 2312, 2317, 2322, 2326, 2332, 2341,732 234 5, 2348, 2352, 2354, 2360, 2366, 2373, 2380, 2382, 2385,733 2388, 239 0, 2393, 2396, 2400, 2404, 2406, 2411, 2416, 2420,734 24 26, 2435, 2439, 2441, 2444, 2446, 2449, 2456, 2462, 2469,735 24 77, 2485, 2487, 2490, 2493, 2495, 2498, 2501, 2505, 2509,736 251 1, 2516, 2521, 2525, 2534, 2538, 2540, 2542, 2545, 2547,737 25 49, 2552, 2556, 2559, 2563, 2566, 2570, 2574, 2577, 2582,738 258 6, 2589, 2593, 2596, 2601, 2605, 2608, 2615, 2622, 2629,739 263 7, 2639, 2642, 2644, 2646, 2648, 2651, 2655, 2658, 2662,740 26 65, 2669, 2673, 2678, 2681, 2685, 2690, 2693, 2699, 2705,741 271 2, 2719, 2720, 2722, 2723668 86, 89, 92, 100, 105, 107, 111, 112, 114, 116, 669 120, 122, 126, 134, 138, 146, 148, 150, 152, 155, 670 158, 161, 164, 167, 170, 175, 178, 183, 190, 192, 671 197, 202, 204, 206, 208, 210, 212, 214, 216, 221, 672 226, 228, 232, 236, 240, 242, 246, 250, 252, 256, 673 260, 262, 266, 270, 274, 278, 280, 284, 288, 290, 674 294, 296, 300, 302, 306, 308, 312, 314, 318, 320, 675 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 676 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 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, 697 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 698 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 742 741 }; 743 742 … … 745 744 static const yytype_int16 yyrhs[] = 746 745 { 747 30 3, 0, -1, -1, -1, 79, -1, 80, -1, 81,746 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 748 747 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 749 748 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 750 749 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 751 109, 17 1, 110, -1, 109, 175, 110, -1, 143, -1,752 144, 111, 134, 16 6, 135, 112, -1, 144, 109, 145,750 109, 170, 110, -1, 109, 174, 110, -1, 143, -1, 751 144, 111, 134, 165, 135, 112, -1, 144, 109, 145, 753 752 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 754 147, 135, 112, -1, 144, 113, 79, -1, 144, 85, 755 139, -1, 144, 85, 111, 134, 147, 135, 112, -1, 756 144, 86, -1, 144, 87, -1, 109, 276, 110, 114, 757 280, 373, 115, -1, 144, 114, 145, 115, -1, 146, 758 -1, 145, 116, 146, -1, -1, 166, -1, 148, -1, 759 147, 116, 148, -1, 149, -1, 149, 113, 148, -1, 760 149, 113, 111, 134, 147, 135, 112, -1, 149, 85, 761 148, -1, 149, 85, 111, 134, 147, 135, 112, -1, 762 139, -1, 79, -1, 144, -1, 136, -1, 141, -1, 763 40, 153, -1, 151, 153, -1, 152, 153, -1, 86, 764 150, -1, 87, 150, -1, 37, 150, -1, 37, 109, 765 276, 110, -1, 66, 150, -1, 66, 109, 276, 110, 766 -1, 38, 109, 276, 116, 139, 110, -1, 76, -1, 767 76, 109, 146, 110, -1, 76, 109, 277, 110, -1, 768 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 769 122, -1, 150, -1, 109, 276, 110, 153, -1, 109, 770 276, 110, 169, -1, 153, -1, 154, 117, 153, -1, 771 154, 123, 153, -1, 154, 124, 153, -1, 154, -1, 772 155, 119, 154, -1, 155, 120, 154, -1, 155, -1, 773 156, 88, 155, -1, 156, 89, 155, -1, 156, -1, 774 157, 125, 156, -1, 157, 126, 156, -1, 157, 90, 775 156, -1, 157, 91, 156, -1, 157, -1, 158, 92, 776 157, -1, 158, 93, 157, -1, 158, -1, 159, 118, 777 158, -1, 159, -1, 160, 127, 159, -1, 160, -1, 778 161, 128, 160, -1, 161, -1, 162, 94, 161, -1, 779 162, -1, 163, 95, 162, -1, 163, -1, 163, 129, 780 171, 130, 164, -1, 163, 129, 130, 164, -1, 163, 781 129, 171, 130, 169, -1, 164, -1, 164, -1, 150, 782 168, 166, -1, 169, 374, -1, -1, 166, -1, 131, 783 -1, 107, -1, 97, -1, 98, -1, 99, -1, 100, 784 -1, 101, -1, 102, -1, 103, -1, 104, -1, 105, 785 -1, 106, -1, 111, 112, -1, 111, 134, 166, 135, 786 112, -1, 111, 134, 116, 170, 135, 112, -1, 111, 787 134, 166, 116, 170, 135, 112, -1, 167, -1, 170, 788 116, 167, -1, 166, -1, 171, 116, 166, -1, -1, 789 171, -1, 174, -1, 175, -1, 179, -1, 180, -1, 790 192, -1, 194, -1, 195, -1, 200, -1, 127, 144, 791 114, 145, 115, 132, -1, 72, 130, 313, 173, -1, 792 114, 115, -1, 114, 134, 134, 211, 176, 135, 115, 793 -1, 177, -1, 176, 134, 177, -1, 214, -1, 40, 794 214, -1, 309, -1, 173, 135, -1, 173, -1, 178, 795 173, -1, 172, 132, -1, 41, 109, 171, 110, 173, 796 -1, 41, 109, 171, 110, 173, 42, 173, -1, 43, 797 109, 171, 110, 185, -1, 43, 109, 171, 110, 114, 798 134, 207, 186, 115, -1, 53, 109, 171, 110, 185, 799 -1, 53, 109, 171, 110, 114, 134, 207, 188, 115, 800 -1, 165, -1, 165, 96, 165, -1, 311, -1, 181, 801 -1, 182, 116, 181, -1, 44, 182, 130, -1, 45, 802 130, -1, 183, -1, 184, 183, -1, 184, 173, -1, 803 -1, 187, -1, 184, 178, -1, 187, 184, 178, -1, 804 -1, 189, -1, 184, 191, -1, 184, 178, 190, -1, 805 189, 184, 191, -1, 189, 184, 178, 190, -1, -1, 806 191, -1, 56, -1, 56, 132, -1, 47, 109, 171, 807 110, 173, -1, 46, 173, 47, 109, 171, 110, 132, 808 -1, 48, 109, 134, 193, 110, 173, -1, 172, 135, 809 132, 172, 132, 172, -1, 214, 172, 132, 172, -1, 810 51, 72, 132, -1, 51, 117, 171, 132, -1, 50, 811 132, -1, 50, 72, 132, -1, 49, 132, -1, 49, 812 72, 132, -1, 52, 172, 132, -1, 61, 167, 132, 813 -1, 62, 167, 132, -1, 62, 167, 63, 166, 132, 814 -1, 57, 175, 196, -1, 57, 175, 198, -1, 57, 815 175, 196, 198, -1, 197, -1, 58, 109, 96, 110, 816 175, -1, 197, 58, 109, 96, 110, 175, -1, 59, 817 109, 96, 110, 175, -1, 197, 59, 109, 96, 110, 818 175, -1, 58, 109, 134, 134, 199, 135, 110, 175, 819 135, -1, 197, 58, 109, 134, 134, 199, 135, 110, 820 175, 135, -1, 59, 109, 134, 134, 199, 135, 110, 821 175, 135, -1, 197, 59, 109, 134, 134, 199, 135, 822 110, 175, 135, -1, 60, 175, -1, 227, -1, 227, 823 310, -1, 227, 358, -1, 367, 139, -1, 367, -1, 824 64, 201, 109, 141, 110, 132, -1, 64, 201, 109, 825 141, 130, 202, 110, 132, -1, 64, 201, 109, 141, 826 130, 202, 130, 202, 110, 132, -1, 64, 201, 109, 827 141, 130, 202, 130, 202, 130, 205, 110, 132, -1, 828 64, 201, 51, 109, 141, 130, 130, 202, 130, 205, 829 130, 206, 110, 132, -1, -1, 11, -1, -1, 203, 830 -1, 204, -1, 203, 116, 204, -1, 141, 109, 165, 831 110, -1, 111, 165, 112, 141, 109, 165, 110, -1, 832 -1, 141, -1, 205, 116, 141, -1, 139, -1, 206, 833 116, 139, -1, 135, -1, 208, -1, 214, -1, 208, 834 134, 214, -1, 135, -1, 210, -1, 224, -1, 210, 835 134, 224, -1, -1, 212, -1, 29, 213, 132, -1, 836 212, 29, 213, 132, -1, 275, -1, 213, 116, 275, 837 -1, 215, -1, 224, -1, 216, 135, 132, -1, 221, 838 135, 132, -1, 218, 135, 132, -1, 294, 135, 132, 839 -1, 297, 135, 132, -1, 217, 278, -1, 233, 217, 840 278, -1, 216, 135, 116, 134, 273, 278, -1, 368, 841 273, 312, -1, 371, 273, 312, -1, 229, 371, 273, 842 312, -1, 219, -1, 229, 219, -1, 233, 219, -1, 843 233, 229, 219, -1, 218, 135, 116, 134, 273, -1, 844 111, 112, 273, 109, 134, 261, 135, 110, -1, 371, 845 273, 109, 134, 261, 135, 110, -1, 220, 273, 109, 846 134, 261, 135, 110, -1, 111, 134, 263, 135, 112, 847 -1, 111, 134, 263, 135, 116, 134, 264, 135, 112, 848 -1, 3, 217, -1, 3, 219, -1, 221, 135, 116, 849 134, 139, -1, 3, 227, 310, -1, 222, 135, 116, 850 134, 310, -1, 229, 3, 227, 310, -1, 227, 3, 851 310, -1, 227, 3, 229, 310, -1, 3, 139, 131, 852 166, -1, 223, 135, 116, 134, 139, 131, 166, -1, 853 225, 135, 132, -1, 222, 135, 132, -1, 223, 135, 854 132, -1, 241, 135, 132, -1, 226, 310, 312, 278, 855 -1, 225, 116, 313, 310, 312, 278, -1, 237, -1, 856 241, -1, 243, -1, 284, -1, 238, -1, 242, -1, 857 244, -1, 285, -1, -1, 229, -1, 230, -1, 229, 858 230, -1, 231, -1, 315, -1, 10, -1, 12, -1, 859 11, -1, 14, -1, 67, -1, -1, 13, 109, 232, 860 287, 110, -1, 234, -1, 229, 234, -1, 233, 229, 861 234, -1, 235, -1, 234, 235, -1, 5, -1, 7, 862 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69, 863 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18, 864 -1, 19, -1, 17, -1, 22, -1, 23, -1, 15, 865 -1, 25, -1, 26, -1, 27, -1, 24, -1, 238, 866 -1, 233, 238, -1, 237, 235, -1, 237, 235, 229, 867 -1, 237, 235, 238, -1, 239, -1, 228, 240, 228, 868 -1, 236, -1, 229, 236, -1, 239, 230, -1, 239, 869 236, -1, 28, 109, 277, 110, -1, 28, 109, 171, 870 110, -1, 78, 109, 277, 110, -1, 78, 109, 171, 871 110, -1, 242, -1, 233, 242, -1, 241, 235, -1, 872 241, 235, 229, -1, 245, -1, 229, 245, -1, 242, 873 230, -1, 244, -1, 233, 244, -1, 243, 235, -1, 874 243, 235, 229, -1, 74, -1, 229, 74, -1, 244, 875 230, -1, 246, -1, 257, -1, 248, 114, 249, 115, 876 -1, 248, 275, -1, -1, 248, 275, 247, 114, 249, 877 115, -1, 248, 109, 293, 110, 114, 249, 115, -1, 878 248, 286, -1, 31, 313, -1, 32, 313, -1, -1, 879 249, 250, -1, 251, 132, -1, 40, 251, 132, -1, 880 252, 132, -1, 40, 252, 132, -1, 367, -1, 367, 881 275, -1, 251, 116, 275, -1, 251, 116, -1, 227, 882 253, -1, 252, 116, 313, 253, -1, -1, 255, -1, 883 319, 254, -1, 332, 254, -1, 358, -1, -1, 255, 884 -1, 130, 165, -1, 30, 313, -1, 256, 114, 259, 885 373, 115, -1, 256, 275, -1, -1, 256, 275, 258, 886 114, 259, 373, 115, -1, 275, 260, -1, 259, 116, 887 275, 260, -1, -1, 131, 165, -1, -1, 262, -1, 888 264, -1, 263, -1, 263, 135, 116, 134, 264, -1, 889 264, 135, 116, 134, 96, -1, 263, 135, 116, 134, 890 96, -1, 268, -1, 264, 135, 116, 134, 268, -1, 891 263, 135, 116, 134, 268, -1, 263, 135, 116, 134, 892 264, 135, 116, 134, 268, -1, 269, -1, 264, 135, 893 116, 134, 269, -1, -1, 266, -1, 267, -1, 267, 894 135, 116, 134, 96, -1, 271, -1, 270, -1, 267, 895 135, 116, 134, 271, -1, 267, 135, 116, 134, 270, 896 -1, 270, -1, 363, 273, 374, -1, 371, 273, 374, 897 -1, 229, 371, 273, 374, -1, 219, -1, 271, -1, 898 363, -1, 371, -1, 229, 371, -1, 372, -1, 226, 899 337, 374, -1, 226, 341, 374, -1, 226, -1, 226, 900 352, -1, 139, -1, 272, 116, 139, -1, 137, -1, 901 74, -1, 75, -1, 138, -1, 74, -1, 75, -1, 902 139, -1, 74, -1, 75, -1, 367, -1, 227, -1, 903 227, 358, -1, 367, -1, 372, -1, 227, -1, 227, 904 346, -1, -1, 131, 279, -1, 107, 279, -1, 166, 905 -1, 114, 280, 373, 115, -1, -1, 279, -1, 281, 906 279, -1, 280, 116, 279, -1, 280, 116, 281, 279, 907 -1, 282, 130, -1, 275, 130, -1, 283, -1, 282, 908 283, -1, 113, 275, -1, 111, 134, 166, 135, 112, 909 -1, 111, 134, 311, 135, 112, -1, 111, 134, 165, 910 96, 165, 135, 112, -1, 113, 111, 134, 147, 135, 911 112, -1, 285, -1, 233, 285, -1, 284, 235, -1, 912 284, 235, 229, -1, 286, -1, 229, 286, -1, 285, 913 230, -1, 75, 109, 293, 110, -1, 288, 374, -1, 914 287, 116, 288, 374, -1, -1, 290, 275, 289, 291, 915 -1, 227, 337, -1, 33, -1, 35, -1, 34, -1, 916 -1, 291, 292, -1, 128, 275, 109, 293, 110, -1, 917 128, 114, 134, 299, 115, -1, 128, 109, 134, 287, 918 135, 110, 114, 134, 299, 115, 109, 293, 110, -1, 919 277, -1, 166, -1, 293, 116, 277, -1, 293, 116, 920 166, -1, 33, 295, -1, 234, 33, 295, -1, 294, 921 116, 295, -1, 296, 291, -1, 296, 291, 131, 277, 922 -1, 275, -1, 274, 109, 134, 287, 135, 110, -1, 923 36, 275, 109, 134, 287, 135, 110, 114, 115, -1, 924 -1, 36, 275, 109, 134, 287, 135, 110, 114, 298, 925 299, 115, -1, 300, -1, 299, 134, 300, -1, 301, 926 135, 132, -1, 302, 135, 132, -1, 217, -1, 219, 927 -1, 301, 135, 116, 134, 273, -1, 227, 310, -1, 928 302, 135, 116, 134, 310, -1, -1, 304, -1, 306, 929 -1, 304, 134, 306, -1, -1, 304, -1, 214, -1, 930 308, -1, 200, -1, -1, 5, 82, 307, 114, 305, 931 115, -1, 40, 306, -1, 309, -1, 324, 175, -1, 932 328, 134, 209, 175, -1, 218, 175, -1, 226, 324, 933 175, -1, 229, 324, 175, -1, 233, 324, 175, -1, 934 233, 229, 324, 175, -1, 226, 328, 134, 209, 175, 935 -1, 229, 328, 134, 209, 175, -1, 233, 328, 134, 936 209, 175, -1, 233, 229, 328, 134, 209, 175, -1, 937 319, -1, 332, -1, 324, -1, 165, 122, 165, -1, 938 -1, 64, 109, 142, 110, 313, -1, -1, 314, -1, 939 315, -1, 314, 315, -1, 39, 109, 109, 316, 110, 940 110, -1, 317, -1, 316, 116, 317, -1, -1, 318, 941 -1, 318, 109, 172, 110, -1, 273, -1, 235, -1, 942 236, -1, 230, -1, 320, 313, -1, 321, -1, 322, 943 313, -1, 323, 313, -1, 137, -1, 109, 320, 110, 944 -1, 151, 319, -1, 151, 229, 319, -1, 109, 321, 945 110, -1, 320, 350, -1, 109, 321, 110, 350, -1, 946 109, 322, 110, 351, -1, 109, 322, 110, -1, 109, 947 321, 110, 109, 134, 265, 135, 110, -1, 109, 323, 948 110, -1, 325, 313, -1, 326, -1, 327, 313, -1, 949 320, 109, 134, 265, 135, 110, -1, 109, 326, 110, 950 109, 134, 265, 135, 110, -1, 109, 325, 110, -1, 951 151, 324, -1, 151, 229, 324, -1, 109, 326, 110, 952 -1, 109, 326, 110, 350, -1, 109, 327, 110, 351, 953 -1, 109, 327, 110, -1, 329, -1, 330, -1, 331, 954 -1, 320, 109, 272, 110, -1, 109, 330, 110, 109, 955 272, 110, -1, 109, 329, 110, -1, 151, 328, -1, 956 151, 229, 328, -1, 109, 330, 110, -1, 109, 330, 957 110, 350, -1, 109, 331, 110, 351, -1, 109, 331, 958 110, -1, 333, 313, -1, 334, -1, 335, 313, -1, 959 336, 313, -1, 342, -1, 109, 333, 110, -1, 151, 960 332, -1, 151, 229, 332, -1, 109, 334, 110, -1, 961 333, 350, -1, 109, 334, 110, 350, -1, 109, 335, 962 110, 351, -1, 109, 335, 110, -1, 333, 109, 134, 963 265, 135, 110, -1, 109, 334, 110, 109, 134, 265, 964 135, 110, -1, 109, 336, 110, -1, 320, 313, -1, 965 338, -1, 339, 313, -1, 340, 313, -1, 151, 337, 966 -1, 151, 229, 337, -1, 109, 338, 110, -1, 320, 967 356, -1, 109, 338, 110, 350, -1, 109, 339, 110, 968 351, -1, 109, 339, 110, -1, 320, 109, 134, 265, 969 135, 110, -1, 109, 338, 110, 109, 134, 265, 135, 970 110, -1, 109, 340, 110, -1, 342, 313, -1, 343, 971 -1, 344, 313, -1, 345, 313, -1, 74, -1, 75, 972 -1, 151, 341, -1, 151, 229, 341, -1, 109, 343, 973 110, -1, 342, 356, -1, 109, 343, 110, 356, -1, 974 342, 109, 134, 265, 135, 110, -1, 109, 343, 110, 975 109, 134, 265, 135, 110, -1, 347, -1, 348, 313, 976 -1, 349, 313, -1, 151, -1, 151, 229, -1, 151, 977 346, -1, 151, 229, 346, -1, 109, 347, 110, -1, 978 350, -1, 109, 347, 110, 350, -1, 109, 348, 110, 979 351, -1, 109, 348, 110, -1, 109, 134, 265, 135, 980 110, -1, 109, 347, 110, 109, 134, 265, 135, 110, 981 -1, 109, 349, 110, -1, 111, 112, -1, 111, 112, 982 351, -1, 351, -1, 111, 134, 166, 135, 112, -1, 983 111, 134, 117, 135, 112, -1, 351, 111, 134, 166, 984 135, 112, -1, 351, 111, 134, 117, 135, 112, -1, 985 353, -1, 354, 313, -1, 355, 313, -1, 151, -1, 986 151, 229, -1, 151, 352, -1, 151, 229, 352, -1, 987 109, 353, 110, -1, 356, -1, 109, 353, 110, 356, 988 -1, 109, 354, 110, 351, -1, 109, 354, 110, -1, 989 109, 134, 265, 135, 110, -1, 109, 353, 110, 109, 990 134, 265, 135, 110, -1, 109, 355, 110, -1, 357, 991 -1, 357, 351, -1, 351, -1, 111, 112, -1, 111, 992 134, 229, 117, 135, 112, -1, 111, 134, 229, 135, 993 112, -1, 111, 134, 229, 166, 135, 112, -1, 111, 994 134, 7, 228, 166, 135, 112, -1, 111, 134, 229, 995 7, 166, 135, 112, -1, 359, -1, 360, 313, -1, 996 361, 313, -1, 151, -1, 151, 229, -1, 151, 358, 997 -1, 151, 229, 358, -1, 109, 359, 110, -1, 350, 998 -1, 109, 359, 110, 350, -1, 109, 360, 110, 351, 999 -1, 109, 360, 110, -1, 109, 359, 110, 109, 134, 1000 265, 135, 110, -1, 109, 361, 110, -1, 363, -1, 1001 371, -1, 229, 371, -1, 364, -1, 365, -1, 151, 1002 227, -1, 229, 151, 227, -1, 151, 372, -1, 229, 1003 151, 372, -1, 151, 362, -1, 229, 151, 362, -1, 1004 111, 112, 227, -1, 366, 227, -1, 111, 112, 351, 1005 227, -1, 366, 351, 227, -1, 351, 227, -1, 111, 1006 112, 364, -1, 366, 364, -1, 111, 112, 351, 364, 1007 -1, 366, 351, 364, -1, 351, 364, -1, 111, 134, 1008 229, 117, 135, 112, -1, 111, 134, 229, 166, 135, 1009 112, -1, 111, 134, 233, 166, 135, 112, -1, 111, 1010 134, 233, 229, 166, 135, 112, -1, 371, -1, 229, 1011 371, -1, 368, -1, 369, -1, 370, -1, 151, 227, 1012 -1, 229, 151, 227, -1, 151, 372, -1, 229, 151, 1013 372, -1, 151, 367, -1, 229, 151, 367, -1, 111, 1014 112, 227, -1, 111, 112, 351, 227, -1, 351, 227, 1015 -1, 111, 112, 369, -1, 111, 112, 351, 369, -1, 1016 351, 369, -1, 111, 134, 264, 135, 112, -1, 111, 1017 112, 109, 261, 110, -1, 371, 109, 134, 261, 135, 1018 110, -1, 220, 109, 134, 261, 135, 110, -1, -1, 1019 116, -1, -1, 131, 166, -1 753 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 754 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 755 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 756 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 757 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 758 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 759 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 760 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 761 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 762 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 763 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 764 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 765 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 766 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 767 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 768 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 769 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 770 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 771 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 772 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 773 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 774 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 775 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 776 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 777 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 778 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 781 -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 1020 1018 }; 1021 1019 … … 1023 1021 static const yytype_uint16 yyrline[] = 1024 1022 { 1025 0, 30 2, 302, 306, 313, 314, 315, 319, 320, 321,1026 32 5, 326, 330, 331, 335, 336, 340, 344, 345, 356,1027 35 8, 360, 362, 367, 368, 374, 378, 380, 382, 384,1028 38 6, 388, 390, 392, 394, 403, 404, 410, 411, 415,1029 416, 420, 42 4, 426, 428, 430, 435, 436, 440, 443,1030 4 45, 447, 452, 465, 467, 469, 471, 473, 475, 477,1031 47 9, 481, 483, 485, 492, 493, 499, 500, 501, 502,1032 50 6, 507, 509, 514, 515, 517, 519, 524, 525, 527,1033 53 2, 533, 535, 540, 541, 543, 545, 547, 552, 553,1034 55 5, 560, 561, 566, 567, 572, 573, 578, 579, 584,1035 585, 5 90, 591, 594, 596, 601, 606, 607, 609, 615,1036 61 6, 620, 621, 622, 623, 624, 625, 626, 627, 628,1037 62 9, 630, 631, 637, 639, 641, 643, 648, 649, 654,1038 65 5, 661, 662, 668, 669, 670, 671, 672, 673, 674,1039 6 75, 676, 686, 693, 695, 705, 706, 711, 713, 719,1040 72 1, 725, 726, 731, 736, 739, 741, 743, 753, 755,1041 76 6, 767, 769, 773, 775, 779, 780, 785, 786, 790,1042 79 5, 796, 800, 802, 808, 809, 813, 815, 817, 819,1043 82 5, 826, 830, 832, 837, 839, 841, 846, 848, 853,1044 85 5, 859, 862, 866, 869, 873, 875, 877, 879, 884,1045 886, 888, 89 3, 895, 897, 899, 901, 906, 908, 910,1046 9 12, 917, 929, 930, 935, 937, 942, 946, 948, 950,1047 952, 95 4, 960, 961, 967, 968, 972, 973, 978, 980,1048 98 6, 987, 989, 994, 999, 1009, 1011, 1015, 1016, 1021,1049 1023, 102 7, 1028, 1032, 1034, 1038, 1039, 1043, 1044, 1048,1050 10 49, 1064, 1065, 1066, 1067, 1068, 1072, 1077, 1084, 1094,1051 1 099, 1104, 1112, 1117, 1122, 1127, 1132, 1140, 1162, 1167,1052 117 4, 1176, 1183, 1188, 1193, 1204, 1209, 1214, 1219, 1224,1053 123 3, 1238, 1246, 1247, 1248, 1249, 1255, 1260, 1268, 1269,1054 12 70, 1271, 1275, 1276, 1277, 1278, 1283, 1284, 1293, 1294,1055 129 9, 1300, 1305, 1307, 1309, 1311, 1313, 1316, 1315, 1327,1056 13 28, 1330, 1340, 1341, 1346, 1348, 1350, 1352, 1354, 1357,1057 13 59, 1362, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381,1058 138 3, 1385, 1387, 1389, 1391, 1397, 1398, 1400, 1402, 1404,1059 140 9, 1410, 1416, 1417, 1419, 1421, 1426, 1428, 1430, 1432,1060 143 7, 1438, 1440, 1442, 1447, 1448, 1450, 1455, 1456, 1458,1061 1460, 1465, 146 7, 1469, 1474, 1475, 1479, 1481, 1487, 1486,1062 1490, 149 2, 1497, 1499, 1505, 1506, 1511, 1512, 1514, 1515,1063 152 4, 1525, 1527, 1529, 1534, 1536, 1542, 1543, 1545, 1548,1064 155 1, 1556, 1557, 1562, 1567, 1571, 1573, 1579, 1578, 1585,1065 15 87, 1593, 1594, 1602, 1603, 1607, 1608, 1609, 1611, 1613,1066 16 20, 1621, 1623, 1625, 1630, 1631, 1637, 1638, 1642, 1643,1067 164 8, 1649, 1650, 1652, 1660, 1661, 1663, 1666, 1668, 1672,1068 16 73, 1674, 1676, 1678, 1682, 1687, 1695, 1696, 1705, 1707,1069 17 12, 1713, 1714, 1718, 1719, 1720, 1724, 1725, 1726, 1730,1070 17 31, 1732, 1737, 1738, 1739, 1740, 1746, 1747, 1749, 1754,1071 175 5, 1760, 1761, 1762, 1763, 1764, 1779, 1780, 1785, 1786,1072 179 2, 1794, 1797, 1799, 1801, 1824, 1825, 1827, 1829, 1834,1073 183 5, 1837, 1842, 1847, 1848, 1854, 1853, 1857, 1861, 1863,1074 186 5, 1871, 1872, 1877, 1882, 1884, 1889, 1891, 1892, 1894,1075 1899, 1901, 190 3, 1908, 1910, 1915, 1920, 1928, 1934, 1933,1076 194 7, 1948, 1953, 1954, 1958, 1963, 1968, 1976, 1981, 1992,1077 199 3, 1998, 1999, 2005, 2006, 2010, 2011, 2012, 2015, 2014,1078 20 25, 2034, 2040, 2046, 2055, 2061, 2067, 2073, 2079, 2087,1079 2 093, 2101, 2107, 2116, 2117, 2118, 2122, 2126, 2128, 2133,1080 213 4, 2138, 2139, 2144, 2150, 2151, 2154, 2156, 2157, 2161,1081 21 62, 2163, 2164, 2198, 2200, 2201, 2203, 2208, 2213, 2218,1082 2220, 2222, 222 7, 2229, 2231, 2233, 2238, 2240, 2249, 2251,1083 2252, 2257, 2259, 2261, 2266, 2268, 2270, 227 5, 2277, 2279,1084 228 8, 2289, 2290, 2294, 2296, 2298, 2303, 2305, 2307, 2312,1085 23 14, 2316, 2331, 2333, 2334, 2336, 2341, 2342, 2347, 2349,1086 2351, 235 6, 2358, 2360, 2362, 2367, 2369, 2371, 2381, 2383,1087 2384, 2386, 2391, 2393, 2395, 2 400, 2402, 2404, 2406, 2411,1088 24 13, 2415, 2446, 2448, 2449, 2451, 2456, 2461, 2469, 2471,1089 247 3, 2478, 2480, 2485, 2487, 2501, 2502, 2504, 2509, 2511,1090 2513, 251 5, 2517, 2522, 2523, 2525, 2527, 2532, 2534, 2536,1091 254 2, 2544, 2546, 2550, 2552, 2554, 2556, 2570, 2571, 2573,1092 257 8, 2580, 2582, 2584, 2586, 2591, 2592, 2594, 2596, 2601,1093 2603, 2605, 261 1, 2612, 2614, 2623, 2626, 2628, 2631, 2633,1094 26 35, 2648, 2649, 2651, 2656, 2658, 2660, 2662, 2664, 2669,1095 2670, 2672, 26 74, 2679, 2681, 2689, 2690, 2691, 2696, 2697,1096 2 701, 2703, 2705, 2707, 2709, 2711, 2718, 2720, 2722, 2724,1097 272 6, 2728, 2730, 2732, 2734, 2736, 2741, 2743, 2745, 2750,1098 277 6, 2777, 2779, 2783, 2784, 2788, 2790, 2792, 2794, 2796,1099 2 798, 2805, 2807, 2809, 2811, 2813, 2815, 2820, 2825, 2827,1100 28 29, 2847, 2849, 2854, 28551023 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, 380, 382, 1026 384, 386, 388, 390, 399, 400, 406, 407, 411, 412, 1027 416, 420, 422, 424, 426, 431, 434, 436, 438, 443, 1028 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 1029 476, 483, 484, 490, 491, 492, 493, 497, 498, 500, 1030 505, 506, 508, 510, 515, 516, 518, 523, 524, 526, 1031 531, 532, 534, 536, 538, 543, 544, 546, 551, 552, 1032 557, 558, 563, 564, 569, 570, 575, 576, 581, 582, 1033 585, 587, 592, 597, 598, 600, 606, 607, 611, 612, 1034 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 1035 628, 630, 632, 634, 639, 640, 645, 646, 652, 653, 1036 659, 660, 661, 662, 663, 664, 665, 666, 667, 677, 1037 684, 686, 696, 697, 702, 704, 710, 712, 716, 717, 1038 722, 727, 730, 732, 734, 744, 746, 757, 758, 760, 1039 764, 766, 770, 771, 776, 777, 781, 786, 787, 791, 1040 793, 799, 800, 804, 806, 808, 810, 816, 817, 821, 1041 823, 828, 830, 832, 837, 839, 844, 846, 850, 853, 1042 857, 860, 864, 866, 868, 870, 875, 877, 879, 884, 1043 886, 888, 890, 892, 897, 899, 901, 903, 908, 920, 1044 921, 926, 928, 933, 937, 939, 941, 943, 945, 951, 1045 952, 958, 959, 963, 964, 969, 971, 977, 978, 980, 1046 985, 990, 1000, 1002, 1006, 1007, 1012, 1014, 1018, 1019, 1047 1023, 1025, 1029, 1030, 1034, 1035, 1039, 1040, 1055, 1056, 1048 1057, 1058, 1059, 1063, 1068, 1075, 1085, 1090, 1095, 1103, 1049 1108, 1113, 1118, 1123, 1131, 1153, 1158, 1165, 1167, 1174, 1050 1179, 1184, 1195, 1200, 1205, 1210, 1215, 1224, 1229, 1237, 1051 1238, 1239, 1240, 1246, 1251, 1259, 1260, 1261, 1262, 1266, 1052 1267, 1268, 1269, 1274, 1275, 1284, 1285, 1290, 1291, 1296, 1053 1298, 1300, 1302, 1304, 1307, 1306, 1318, 1319, 1321, 1331, 1054 1332, 1337, 1339, 1341, 1343, 1345, 1348, 1350, 1353, 1358, 1055 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1056 1380, 1382, 1388, 1389, 1391, 1393, 1395, 1400, 1401, 1407, 1057 1408, 1410, 1412, 1417, 1419, 1421, 1423, 1428, 1429, 1431, 1058 1433, 1438, 1439, 1441, 1446, 1447, 1449, 1451, 1456, 1458, 1059 1460, 1465, 1466, 1470, 1472, 1478, 1477, 1481, 1483, 1488, 1060 1490, 1496, 1497, 1502, 1503, 1505, 1506, 1515, 1516, 1518, 1061 1520, 1525, 1527, 1533, 1534, 1536, 1539, 1542, 1547, 1548, 1062 1553, 1558, 1562, 1564, 1570, 1569, 1576, 1578, 1584, 1585, 1063 1593, 1594, 1598, 1599, 1600, 1602, 1604, 1611, 1612, 1614, 1064 1616, 1621, 1622, 1628, 1629, 1633, 1634, 1639, 1640, 1641, 1065 1643, 1651, 1652, 1654, 1657, 1659, 1663, 1664, 1665, 1667, 1066 1669, 1673, 1678, 1686, 1687, 1696, 1698, 1703, 1704, 1705, 1067 1709, 1710, 1711, 1715, 1716, 1717, 1721, 1722, 1723, 1728, 1068 1729, 1730, 1731, 1737, 1738, 1740, 1745, 1746, 1751, 1752, 1069 1753, 1754, 1755, 1770, 1771, 1776, 1777, 1783, 1785, 1788, 1070 1790, 1792, 1815, 1816, 1818, 1820, 1825, 1826, 1828, 1833, 1071 1838, 1839, 1845, 1844, 1848, 1852, 1854, 1856, 1862, 1863, 1072 1868, 1873, 1875, 1880, 1882, 1883, 1885, 1890, 1892, 1894, 1073 1899, 1901, 1906, 1911, 1919, 1925, 1924, 1938, 1939, 1944, 1074 1945, 1949, 1954, 1959, 1967, 1972, 1983, 1984, 1989, 1990, 1075 1996, 1997, 2001, 2002, 2003, 2006, 2005, 2016, 2025, 2031, 1076 2037, 2046, 2052, 2058, 2064, 2070, 2078, 2084, 2092, 2098, 1077 2107, 2108, 2109, 2113, 2117, 2119, 2124, 2125, 2129, 2130, 1078 2135, 2141, 2142, 2145, 2147, 2148, 2152, 2153, 2154, 2155, 1079 2189, 2191, 2192, 2194, 2199, 2204, 2209, 2211, 2213, 2218, 1080 2220, 2222, 2224, 2229, 2231, 2240, 2242, 2243, 2248, 2250, 1081 2252, 2257, 2259, 2261, 2266, 2268, 2270, 2279, 2280, 2281, 1082 2285, 2287, 2289, 2294, 2296, 2298, 2303, 2305, 2307, 2322, 1083 2324, 2325, 2327, 2332, 2333, 2338, 2340, 2342, 2347, 2349, 1084 2351, 2353, 2358, 2360, 2362, 2372, 2374, 2375, 2377, 2382, 1085 2384, 2386, 2391, 2393, 2395, 2397, 2402, 2404, 2406, 2437, 1086 2439, 2440, 2442, 2447, 2452, 2460, 2462, 2464, 2469, 2471, 1087 2476, 2478, 2492, 2493, 2495, 2500, 2502, 2504, 2506, 2508, 1088 2513, 2514, 2516, 2518, 2523, 2525, 2527, 2533, 2535, 2537, 1089 2541, 2543, 2545, 2547, 2561, 2562, 2564, 2569, 2571, 2573, 1090 2575, 2577, 2582, 2583, 2585, 2587, 2592, 2594, 2596, 2602, 1091 2603, 2605, 2614, 2617, 2619, 2622, 2624, 2626, 2639, 2640, 1092 2642, 2647, 2649, 2651, 2653, 2655, 2660, 2661, 2663, 2665, 1093 2670, 2672, 2680, 2681, 2682, 2687, 2688, 2692, 2694, 2696, 1094 2698, 2700, 2702, 2709, 2711, 2713, 2715, 2717, 2719, 2721, 1095 2723, 2725, 2727, 2732, 2734, 2736, 2741, 2767, 2768, 2770, 1096 2774, 2775, 2779, 2781, 2783, 2785, 2787, 2789, 2796, 2798, 1097 2800, 2802, 2804, 2806, 2811, 2816, 2818, 2820, 2838, 2840, 1098 2845, 2846 1101 1099 }; 1102 1100 #endif … … 1130 1128 "string_literal", "string_literal_list", "primary_expression", 1131 1129 "postfix_expression", "argument_expression_list", "argument_expression", 1132 "field_list", "field", " field_name", "unary_expression",1133 " ptrref_operator", "unary_operator", "cast_expression",1134 " multiplicative_expression", "additive_expression", "shift_expression",1135 " relational_expression", "equality_expression", "AND_expression",1136 " exclusive_OR_expression", "inclusive_OR_expression",1137 "logical_ AND_expression", "logical_OR_expression",1138 " conditional_expression", "constant_expression", "assignment_expression",1139 "assignment_ expression_opt", "assignment_operator", "tuple",1140 " tuple_expression_list", "comma_expression", "comma_expression_opt",1141 " statement", "labeled_statement", "compound_statement",1142 "block_item _list", "block_item", "statement_list",1143 " expression_statement", "selection_statement", "case_value",1144 "case_ value_list", "case_label", "case_label_list", "case_clause",1145 "switch_clause_list _opt", "switch_clause_list", "choose_clause_list_opt",1146 " choose_clause_list", "fall_through_opt", "fall_through",1147 " iteration_statement", "for_control_expression", "jump_statement",1148 " exception_statement", "handler_list", "handler_clause",1149 " finally_clause", "exception_declaration", "asm_statement",1150 "asm_ volatile_opt", "asm_operands_opt", "asm_operands_list",1151 "asm_ operand", "asm_clobbers_list_opt", "label_list",1152 "declaration_list _opt", "declaration_list", "old_declaration_list_opt",1153 " old_declaration_list", "local_label_declaration_opt",1154 "local_label_ declaration_list", "local_label_list", "declaration",1155 "new_ declaration", "new_variable_declaration", "new_variable_specifier",1130 "field_list", "field", "unary_expression", "ptrref_operator", 1131 "unary_operator", "cast_expression", "multiplicative_expression", 1132 "additive_expression", "shift_expression", "relational_expression", 1133 "equality_expression", "AND_expression", "exclusive_OR_expression", 1134 "inclusive_OR_expression", "logical_AND_expression", 1135 "logical_OR_expression", "conditional_expression", "constant_expression", 1136 "assignment_expression", "assignment_expression_opt", 1137 "assignment_operator", "tuple", "tuple_expression_list", 1138 "comma_expression", "comma_expression_opt", "statement", 1139 "labeled_statement", "compound_statement", "block_item_list", 1140 "block_item", "statement_list", "expression_statement", 1141 "selection_statement", "case_value", "case_value_list", "case_label", 1142 "case_label_list", "case_clause", "switch_clause_list_opt", 1143 "switch_clause_list", "choose_clause_list_opt", "choose_clause_list", 1144 "fall_through_opt", "fall_through", "iteration_statement", 1145 "for_control_expression", "jump_statement", "exception_statement", 1146 "handler_list", "handler_clause", "finally_clause", 1147 "exception_declaration", "asm_statement", "asm_volatile_opt", 1148 "asm_operands_opt", "asm_operands_list", "asm_operand", 1149 "asm_clobbers_list_opt", "label_list", "declaration_list_opt", 1150 "declaration_list", "old_declaration_list_opt", "old_declaration_list", 1151 "local_label_declaration_opt", "local_label_declaration_list", 1152 "local_label_list", "declaration", "new_declaration", 1153 "new_variable_declaration", "new_variable_specifier", 1156 1154 "new_function_declaration", "new_function_specifier", 1157 1155 "new_function_return", "new_typedef_declaration", "typedef_declaration", … … 1243 1241 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1244 1242 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1245 144, 144, 144, 144, 14 4, 145, 145, 146, 146, 147,1246 14 7, 148, 148, 148, 148, 148, 149, 149, 150, 150,1247 1 50, 150, 150, 150, 150, 150, 150, 150, 150, 150,1248 1 50, 150, 150, 150, 151, 151, 152, 152, 152, 152,1249 153, 153, 153, 15 4, 154, 154, 154, 155, 155, 155,1250 156, 156, 156, 15 7, 157, 157, 157, 157, 158, 158,1251 15 8, 159, 159, 160, 160, 161, 161, 162, 162, 163,1252 163, 16 4, 164, 164, 164, 165, 166, 166, 166, 167,1253 167, 16 8, 168, 168, 168, 168, 168, 168, 168, 168,1254 168, 168, 168, 16 9, 169, 169, 169, 170, 170, 171,1255 17 1, 172, 172, 173, 173, 173, 173, 173, 173, 173,1256 17 3, 173, 174, 175, 175, 176, 176, 177, 177, 177,1257 17 7, 178, 178, 179, 180, 180, 180, 180, 180, 180,1258 181, 181, 18 1, 182, 182, 183, 183, 184, 184, 185,1259 186, 18 6, 187, 187, 188, 188, 189, 189, 189, 189,1260 190, 19 0, 191, 191, 192, 192, 192, 193, 193, 194,1261 19 4, 194, 194, 194, 194, 194, 194, 194, 194, 195,1262 195, 195, 19 6, 196, 196, 196, 196, 197, 197, 197,1263 19 7, 198, 199, 199, 199, 199, 199, 200, 200, 200,1264 200, 20 0, 201, 201, 202, 202, 203, 203, 204, 204,1265 205, 205, 20 5, 206, 206, 207, 207, 208, 208, 209,1266 2 09, 210, 210, 211, 211, 212, 212, 213, 213, 214,1267 214, 21 5, 215, 215, 215, 215, 216, 216, 216, 217,1268 217, 217, 21 8, 218, 218, 218, 218, 219, 219, 219,1269 220, 220, 221, 221, 221, 22 2, 222, 222, 222, 222,1270 223, 223, 22 4, 224, 224, 224, 225, 225, 226, 226,1271 226, 226, 22 7, 227, 227, 227, 228, 228, 229, 229,1272 230, 230, 23 1, 231, 231, 231, 231, 232, 231, 233,1273 233, 23 3, 234, 234, 235, 235, 235, 235, 235, 235,1274 235, 235, 23 6, 236, 236, 236, 236, 236, 236, 236,1275 23 6, 236, 236, 236, 236, 237, 237, 237, 237, 237,1276 238, 238, 23 9, 239, 239, 239, 240, 240, 240, 240,1277 24 1, 241, 241, 241, 242, 242, 242, 243, 243, 243,1278 243, 244, 244, 24 4, 245, 245, 246, 246, 247, 246,1279 24 6, 246, 248, 248, 249, 249, 250, 250, 250, 250,1280 25 1, 251, 251, 251, 252, 252, 253, 253, 253, 253,1281 25 3, 254, 254, 255, 256, 257, 257, 258, 257, 259,1282 2 59, 260, 260, 261, 261, 262, 262, 262, 262, 262,1283 26 3, 263, 263, 263, 264, 264, 265, 265, 266, 266,1284 26 7, 267, 267, 267, 268, 268, 268, 268, 268, 269,1285 26 9, 269, 269, 269, 270, 270, 271, 271, 272, 272,1243 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 1244 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 1245 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 1246 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 1247 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 1248 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 1249 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1250 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 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, 1272 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 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, 1286 1284 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1287 276, 276, 27 7, 277, 277, 277, 278, 278, 278, 279,1288 279, 2 80, 280, 280, 280, 280, 281, 281, 282, 282,1289 28 3, 283, 283, 283, 283, 284, 284, 284, 284, 285,1290 28 5, 285, 286, 287, 287, 289, 288, 288, 290, 290,1291 29 0, 291, 291, 292, 292, 292, 293, 293, 293, 293,1292 294, 294, 29 4, 295, 295, 296, 296, 297, 298, 297,1293 299, 299, 300, 300, 301, 301, 301, 302, 302, 303,1294 30 3, 304, 304, 305, 305, 306, 306, 306, 307, 306,1295 30 6, 308, 308, 308, 309, 309, 309, 309, 309, 309,1296 309, 309, 309, 310, 31 0, 310, 311, 312, 312, 313,1297 31 3, 314, 314, 315, 316, 316, 317, 317, 317, 318,1298 318, 318, 318, 31 9, 319, 319, 319, 320, 320, 321,1299 321, 321, 32 2, 322, 322, 322, 323, 323, 324, 324,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, 1300 1298 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1301 1299 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1302 331, 331, 33 2, 332, 332, 332, 333, 333, 334, 334,1303 334, 33 5, 335, 335, 335, 336, 336, 336, 337, 337,1304 337, 337, 338, 338, 338, 33 9, 339, 339, 339, 340,1305 340, 340, 34 1, 341, 341, 341, 342, 342, 343, 343,1306 34 3, 344, 344, 345, 345, 346, 346, 346, 347, 347,1307 347, 347, 347, 34 8, 348, 348, 348, 349, 349, 349,1308 350, 350, 350, 35 1, 351, 351, 351, 352, 352, 352,1309 35 3, 353, 353, 353, 353, 354, 354, 354, 354, 355,1310 355, 355, 356, 356, 356, 35 7, 357, 357, 357, 357,1311 357, 358, 358, 358, 35 9, 359, 359, 359, 359, 360,1312 360, 360, 36 0, 361, 361, 362, 362, 362, 363, 363,1313 36 4, 364, 364, 364, 364, 364, 365, 365, 365, 365,1314 36 5, 365, 365, 365, 365, 365, 366, 366, 366, 366,1315 367, 367, 36 7, 368, 368, 369, 369, 369, 369, 369,1316 369, 3 70, 370, 370, 370, 370, 370, 371, 372, 372,1317 37 2, 373, 373, 374, 3741300 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 1318 1316 }; 1319 1317 … … 1323 1321 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1324 1322 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1325 1, 3, 3, 1, 6, 4, 3, 7, 3, 3,1326 7, 2, 2, 7, 4, 1, 3, 0, 1, 1,1327 3, 1, 3, 7, 3, 7, 1, 1, 1, 1,1328 1, 2, 2, 2, 2, 2, 2, 4, 2, 4,1329 6, 1, 4, 4, 1, 1, 1, 1, 1, 1,1330 1, 4, 4, 1, 3, 3, 3, 1, 3, 3,1331 1, 3, 3, 1, 3, 3, 3, 3, 1, 3,1332 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,1333 3, 1, 5, 4, 5, 1, 1, 3, 2, 0,1323 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 1324 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 1325 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1326 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 1327 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1328 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1329 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1334 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1335 1, 1, 1, 2, 5, 6, 7, 1, 3, 1,1336 3, 0, 1, 1, 1, 1, 1, 1, 1, 1,1337 1, 6, 4, 2, 7, 1, 3, 1, 2, 1,1338 2, 1, 2, 2, 5, 7, 5, 9, 5, 9,1339 1, 3, 1, 1, 3, 3, 2, 1, 2, 2,1340 0, 1, 2, 3, 0, 1, 2, 3, 3, 4,1341 0, 1, 1, 2, 5, 7, 6, 6, 4, 3,1342 4, 2, 3, 2, 3, 3, 3, 3, 5, 3,1343 3, 4, 1, 5, 6, 5, 6, 9, 10, 9,1344 10, 2, 1, 2, 2, 2, 1, 6, 8, 10,1345 12, 14, 0, 1, 0, 1, 1, 3, 4, 7,1346 0, 1, 3, 1, 3, 1, 1, 1, 3, 1,1347 1, 1, 3, 0, 1, 3, 4, 1, 3, 1,1348 1, 3, 3, 3, 3, 3, 2, 3, 6, 3,1349 3, 4, 1, 2, 2, 3, 5, 8, 7, 7,1350 5, 9, 2, 2, 5, 3, 5, 4, 3, 4,1351 4, 7, 3, 3, 3, 3, 4, 6, 1, 1,1352 1, 1, 1, 1, 1, 1, 0, 1, 1, 2,1353 1, 1, 1, 1, 1, 1, 1, 0, 5, 1,1354 2, 3, 1, 2, 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, 1355 1353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1356 1, 1, 1, 1, 1, 1, 2, 2, 3, 3,1357 1, 3, 1, 2, 2, 2, 4, 4, 4, 4,1358 1, 2, 2, 3, 1, 2, 2, 1, 2, 2,1359 3, 1, 2, 2, 1, 1, 4, 2, 0, 6,1360 7, 2, 2, 2, 0, 2, 2, 3, 2, 3,1361 1, 2, 3, 2, 2, 4, 0, 1, 2, 2,1362 1, 0, 1, 2, 2, 5, 2, 0, 7, 2,1363 4, 0, 2, 0, 1, 1, 1, 5, 5, 5,1364 1, 5, 5, 9, 1, 5, 0, 1, 1, 5,1365 1, 1, 5, 5, 1, 3, 3, 4, 1, 1,1366 1, 1, 2, 1, 3, 3, 1, 2, 1, 3,1367 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1368 1, 2, 1, 1, 1, 2, 0, 2, 2, 1,1369 4, 0, 1, 2, 3, 4, 2, 2, 1, 2,1370 2, 5, 5, 7, 6, 1, 2, 2, 3, 1,1371 2, 2, 4, 2, 4, 0, 4, 2, 1, 1,1372 1, 0, 2, 5, 5, 13, 1, 1, 3, 3,1373 2, 3, 3, 2, 4, 1, 6, 9, 0, 11,1374 1, 3, 3, 3, 1, 1, 5, 2, 5, 0,1375 1, 1, 3, 0, 1, 1, 1, 1, 0, 6,1376 2, 1, 2, 4, 2, 3, 3, 3, 4, 5,1377 5, 5, 6, 1, 1, 1, 3, 0, 5, 0,1378 1, 1, 2, 6, 1, 3, 0, 1, 4, 1,1379 1, 1, 1, 2, 1, 2, 2, 1, 3, 2,1380 3, 3, 2, 4, 4, 3, 8, 3, 2, 1,1381 2, 6, 8, 3, 2, 3, 3, 4, 4, 3,1382 1, 1, 1, 4, 6, 3, 2, 3, 3, 4,1383 4, 3, 2, 1, 2, 2, 1, 3, 2, 3,1384 3, 2, 4, 4, 3, 6, 8, 3, 2, 1,1385 2, 2, 2, 3, 3, 2, 4, 4, 3, 6,1386 8, 3, 2, 1, 2, 2, 1, 1, 2, 3,1387 3, 2, 4, 6, 8, 1, 2, 2, 1, 2,1388 2, 3, 3, 1, 4, 4, 3, 5, 8, 3,1389 2, 3, 1, 5, 5, 6, 6, 1, 2, 2,1390 1, 2, 2, 3, 3, 1, 4, 4, 3, 5,1391 8, 3, 1, 2, 1, 2, 6, 5, 6, 7,1392 7, 1, 2, 2, 1, 2, 2, 3, 3, 1,1393 4, 4, 3, 8, 3, 1, 1, 2, 1, 1,1394 2, 3, 2, 3, 2, 3, 3, 2, 4, 3,1395 2, 3, 2, 4, 3, 2, 6, 6, 6, 7,1396 1, 2, 1, 1, 1, 2, 3, 2, 3, 2,1397 3, 3, 4, 2, 3, 4, 2, 5, 5, 6,1398 6, 0, 1,0, 21354 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, 1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 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 1399 1397 }; 1400 1398 … … 1404 1402 static const yytype_uint16 yydefact[] = 1405 1403 { 1406 29 6, 296, 316, 314, 317, 315, 318, 319, 302, 304,1407 30 3, 0, 305, 330, 322, 327, 325, 326, 324, 323,1408 32 8, 329, 334, 331, 332, 333, 549, 549, 549, 0,1409 0, 0, 29 6, 222, 306, 320, 321, 7, 361, 0,1410 8, 14, 15, 0, 2, 6 4, 65, 567, 9, 296,1411 52 7, 525, 249, 3, 456, 3, 262, 0, 3, 3,1412 3, 2 50, 3, 0, 0, 0, 297, 298, 300, 296,1413 30 9, 312, 342, 288, 335, 340, 289, 350, 290, 357,1414 35 4, 364, 0, 0, 365, 291, 475, 479, 3, 3,1415 0, 2, 5 21, 526, 531, 301, 0, 0, 549, 579,1416 54 9, 2, 590, 591, 592, 296, 0, 733, 734, 0,1417 12, 0, 13, 29 6, 272, 273, 0, 297, 292, 293,1418 29 4, 295, 528, 307, 394, 550, 551, 372, 373, 12,1419 44 7, 448, 11, 443, 446, 0, 505, 500, 491, 447,1420 44 8, 0, 0, 530, 223, 0, 296, 0, 0, 0,1421 0, 0, 0, 0, 0, 29 6, 296, 2, 0, 735,1422 29 7, 584, 596, 739, 732, 730, 737, 0, 0, 0,1423 25 6, 2, 0, 534, 441, 442, 440, 0, 0, 0,1424 0, 54 9, 0, 636, 637, 0, 0, 547, 543, 549,1425 56 4, 549, 549, 545, 2, 544, 549, 603, 549, 549,1426 60 6, 0, 0, 0, 296, 296, 314, 362, 2, 296,1427 26 3, 299, 310, 343, 355, 480, 0, 2, 0, 456,1428 26 4, 297, 336, 351, 358, 476, 0, 2, 0, 313,1429 33 7, 344, 345, 0, 352, 356, 359, 363, 448, 296,1430 37 4, 367, 371, 0, 396, 477, 481, 0, 0, 0,1431 1, 29 6, 2, 532, 578, 580, 296, 2, 743, 297,1432 74 6, 547, 547, 0, 297, 0, 0, 275, 549, 545,1433 2, 29 6, 0, 0, 296, 552, 2, 503, 2, 556,1434 0, 0, 0, 0, 0, 0, 19, 61, 4, 5,1435 6, 17, 0, 0, 29 6, 2, 66, 67, 68, 69,1436 4 9, 20, 50, 16, 23, 48, 70, 296, 0, 73,1437 7 7, 80, 83, 88, 91, 93, 95, 97, 99, 101,1438 10 6, 497, 753, 454, 496, 0, 452, 453, 0, 568,1439 58 3, 586, 589, 595, 598, 601, 361, 0, 2, 741,1440 0, 29 6, 744, 2, 64, 296, 3, 428, 0, 436,1441 29 7, 296, 309, 335, 289, 350, 357, 3, 3, 410,1442 41 4, 424, 429, 475, 296, 430, 708, 709, 296, 431,1443 43 3, 296, 2, 585, 597, 731, 2, 2, 251, 2,1444 4 61, 0, 459, 458, 457, 143, 2, 2, 253, 2,1445 2, 2 52, 2, 283, 2, 284, 0, 282, 0, 0,1446 0, 0, 0, 0, 0, 0, 0, 56 9, 608, 0,1447 45 6, 2, 563, 572, 662, 565, 566, 535, 296, 2,1448 602, 611, 604, 605, 0, 278, 296, 296, 341, 297,1449 0, 29 7, 0, 296, 736, 740, 738, 536, 296, 547,1450 25 7, 265, 311, 0, 2, 537, 296, 501, 338, 339,1451 28 5, 353, 360, 0, 296, 0, 751, 401, 0, 478,1452 502, 254, 255, 522, 296, 438, 0, 296, 239, 0,1453 2, 2 41, 0, 297, 0, 259, 2, 260, 280, 0,1454 0, 2, 29 6, 547, 296, 488, 490, 489, 0, 0,1455 75 3, 0, 296, 0, 296, 492, 296, 562, 560, 561,1456 55 9, 0, 554, 557, 0, 0, 296, 56, 296, 70,1457 51, 296, 58, 296, 296, 54, 55, 2, 129, 0,1458 0, 4 50, 0, 449, 730, 123, 296, 18, 0, 31,1459 3 2, 37, 2, 0, 37, 113, 114, 115, 116, 117,1460 11 8, 119, 120, 121, 122, 112, 111, 0, 52, 53,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, 1432 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1433 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1434 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1435 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 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, 1461 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1462 1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1463 10 8, 2, 648, 455, 645, 549, 549, 653, 482, 296,1464 2, 58 7, 588, 0, 599, 600, 0, 2, 742, 745,1465 12 3, 296, 0, 2, 710, 297, 714, 705, 706, 712,1466 0, 2, 2, 6 70, 549, 753, 619, 549, 549, 753,1467 54 9, 633, 549, 549, 684, 437, 667, 549, 549, 675,1468 6 82, 296, 432, 297, 0, 0, 296, 720, 297, 725,1469 75 3, 717, 296, 722, 753, 296, 296, 296, 0, 123,1470 0, 19, 2, 0, 20, 0, 4 62, 751, 0, 0,1471 46 8, 243, 0, 296, 0, 0, 0, 547, 571, 575,1472 57 7, 607, 610, 614, 617, 570, 609, 0, 286, 660,1473 0, 29 6, 279, 0, 0, 0, 0, 277, 2, 0,1474 2 61, 538, 296, 0, 0, 296, 2, 366, 386, 375,1475 0, 0, 3 80, 374, 752, 0, 0, 399, 0, 297,1476 3, 41 7, 3, 421, 420, 593, 0, 533, 296, 64,1477 3, 29 6, 436, 297, 3, 430, 431, 2, 0, 0,1478 0, 48 7, 308, 296, 483, 485, 3, 2, 2, 0,1479 50 4, 3, 0, 556, 131, 0, 0, 224, 0, 0,1480 0, 0, 3 8, 0, 0, 123, 296, 21, 0, 22,1481 0, 69 4, 699, 451, 691, 549, 549, 0, 109, 3,1482 2, 2 9, 0, 35, 0, 28, 2, 26, 0, 107,1483 7 4, 75, 76, 78, 79, 81, 82, 86, 87, 84,1484 8 5, 89, 90, 92, 94, 96, 98, 100, 0, 0,1485 754, 296, 0, 0, 0, 649, 650, 646, 647, 499,1486 498, 296, 0, 296, 716, 296, 721, 297, 296, 664,1487 29 6, 296, 707, 663, 2, 296, 0, 0, 0, 0,1488 0, 0, 0, 0, 685, 0, 671, 622, 638, 672,1489 2, 618, 625, 434, 620, 621, 435, 2, 632, 641,1490 63 4, 635, 668, 669, 683, 711, 715, 713, 753, 270,1491 2, 747, 2, 425, 719, 724, 426, 0, 404, 3,1492 3, 3, 3, 456, 3, 0, 2, 470, 467, 752,1493 0, 463, 2, 466, 469, 0, 296, 244, 266, 3,1494 27 4, 276, 0, 456, 2, 573, 574, 2, 612, 613,1495 0, 661, 539, 3, 347, 346, 349, 348, 296, 540,1496 0, 541, 374, 0, 0, 296, 296, 0, 0, 694,1497 384, 38 7, 391, 549, 391, 390, 383, 376, 549, 378,1498 381, 296, 401, 395, 105, 402, 751, 0, 0, 439,1499 242, 0, 0, 3, 2, 670, 432, 0, 529,0,1500 753, 491, 0, 296, 296, 296, 0, 553, 555, 132,1501 0, 0, 217, 0, 0, 0, 225, 226, 57, 0,1502 59, 6 2, 63, 0, 2, 130, 0, 0, 0, 695,1503 6 96, 692, 693, 461, 71, 72, 110, 127, 3, 109,1504 0, 0, 25, 37, 3, 0, 34, 103, 0, 3,1505 65 2, 656, 659, 651, 3, 594, 3, 718, 723, 2,1506 64, 296, 3, 3, 297, 0, 3, 624, 628, 631,1507 6 40, 674, 678, 681, 296, 3, 623, 639, 673, 296,1508 296, 427, 296, 296, 748, 0, 0, 0, 0, 258,1509 0, 105, 0, 3, 3, 0, 464, 0, 460, 0,1510 0, 247, 296, 0, 0, 131, 0, 0, 0, 0,1511 0, 131, 0, 0, 109, 109, 19, 2, 0, 0,1512 3, 133, 134, 2, 145, 135, 136, 137, 138, 139,1513 14 0, 147, 149, 0, 0, 0, 287, 296, 296, 549,1514 0, 542, 296, 377, 379, 0, 393, 695, 388, 392,1515 3 89, 382, 386, 369, 400, 0, 581, 2, 666, 665,1516 0, 671, 2, 484, 486, 506, 3, 514, 515, 0,1517 2, 510, 3, 3, 0, 0, 558, 224, 0, 0,1518 0, 224, 0, 0, 123, 698, 702, 704, 697, 751,1519 109, 0, 3, 663, 47, 46, 3, 39, 41, 36,1520 0, 3, 102, 104, 0, 2, 654, 655, 0, 0,1521 296, 0, 0, 0, 3, 640, 0, 2, 626, 627,1522 2, 642, 2, 676, 677, 0, 0, 64, 0, 3,1523 3, 3, 3, 412, 411, 415, 2, 2, 750, 749,1524 124, 0, 0, 0, 0, 3, 465, 3, 0, 245,1525 148, 3, 297, 296, 0, 0, 0, 0, 2, 0,1526 193, 0, 191, 0, 0, 0, 0, 0,0, 0,1527 549, 123, 0, 153, 150, 296, 0, 0, 269, 281,1528 3, 3, 548, 615, 370, 385, 398, 296, 268, 296,1529 0, 517, 494, 296, 0, 0, 493, 508, 0, 0,1530 0, 218, 0, 227, 60, 2, 700, 701, 0, 128,1531 125, 0, 0, 0, 0, 0, 24, 0, 657, 296,1532 582, 267, 726, 727, 728, 0, 679, 296, 296, 296,1533 3, 3, 0, 687, 0, 0, 0, 0, 296, 296,1534 3, 546, 124, 472, 0, 0, 248, 297, 0, 0,1535 0, 0, 296, 194, 192, 189, 0, 195, 0, 0,1536 0, 0, 199, 202, 200, 196, 0, 197, 131, 37,1537 146, 144, 246, 0, 0, 419, 423, 422, 0, 511,1538 2, 512, 2, 513, 507, 296, 230, 0, 228, 0,1539 230, 296, 33, 126, 40, 30, 2, 44, 2, 42,1540 27, 3, 729, 3, 3, 3, 0, 0, 686, 688,1541 629, 643, 271, 2, 409, 3, 408, 0, 474, 471,1542 1 31, 0, 0, 131, 3, 0, 131, 190, 0, 2,1543 2, 211, 201, 0, 0, 0, 142, 0, 576, 616,1544 2, 0, 0, 2, 231, 0, 0, 219, 0, 3,1545 0, 0, 0, 0, 0, 0, 689, 690, 296, 0,1546 473, 154, 0, 0, 2, 167, 131, 156, 0, 184,1547 0, 131, 0, 2, 158, 0, 2, 0, 2, 2,1548 2, 198, 34, 296, 516, 518, 509, 0, 0, 0,1549 0, 0, 3, 3, 658, 630, 644, 680, 413, 131,1550 1 60, 163, 0, 162, 166, 3, 169, 168, 0, 131,1551 186, 131, 3, 0, 296, 0, 296, 0, 2, 0,1552 2, 141, 2, 232, 233, 0, 229, 220, 703, 0,1553 0, 1 55, 0, 0, 165, 235, 170, 2, 237, 185,1554 0, 188, 174, 203, 3, 212, 216, 205, 3, 0,1555 296, 0, 296, 0, 0, 0, 45, 43, 161, 164,1556 131, 0, 171, 296, 131, 131, 0, 175, 0, 0,1557 694, 213, 214, 215, 0, 204, 3, 206, 3, 296,1558 221, 234, 151, 172, 157, 131, 238, 187, 182, 180,1559 176, 159, 131, 0, 695, 0, 0, 0, 0, 152,1560 17 3, 183, 177, 181, 180, 178, 3, 3, 0, 0,1561 495, 179, 207, 209, 3, 3, 208, 2101461 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 1562 1560 }; 1563 1561 … … 1565 1563 static const yytype_int16 yydefgoto[] = 1566 1564 { 1567 -1, 81 5, 468, 300, 47, 133, 134, 301, 302, 303,1568 304, 305, 762, 763, 113 6, 1137, 1138, 306, 381, 308,1569 3 09, 310, 311, 312, 313, 314, 315, 316, 317, 318,1570 3 19, 320, 1032, 518, 977, 547, 322, 978, 949, 1059,1571 1 522, 1061, 1062, 1063, 1064, 1523, 1065, 1066, 1441, 1442,1572 140 5, 1406, 1407, 1501, 1502, 1506, 1507, 1542, 1543, 1067,1573 1 365, 1068, 1069, 1302, 1303, 1304, 1484, 1070, 145, 955,1574 956, 957, 1385, 1465, 1476, 1477, 469, 470, 876, 877,1575 1040, 51, 52, 53, 54, 55, 347, 158, 58, 59,1576 6 0, 61, 62, 349, 64, 65, 264, 67, 68, 274,1577 35 1, 352, 71, 72, 73, 118, 75, 204, 354, 119,1578 78, 120, 80, 81, 455, 82, 454, 689, 690, 691,1579 910, 1088, 911, 83, 84, 458, 456, 697, 857, 858,1580 859, 860, 700, 701, 702, 359, 360, 361, 362, 466,1581 340, 135, 136, 522, 324, 170, 646, 647, 648, 649,1582 650, 85, 121, 87, 489, 490, 941, 491, 277, 495,1583 325, 88, 137, 138, 89, 1325, 1110, 1111, 1112, 1113,1584 9 0, 91, 718, 92, 273, 93, 94, 187, 1034, 680,1585 412, 125, 95, 501, 502, 503, 188, 268, 190, 191,1586 192, 269, 98, 99, 100, 101, 102, 103, 104, 195,1587 19 6, 197, 198, 199, 827, 606, 607, 608, 609, 200,1588 61 1, 612, 613, 573, 574, 575, 576, 752, 105, 615,1589 61 6, 617, 618, 619, 620, 970, 754, 755, 756, 596,1590 36 5, 366, 367, 368, 326, 164, 107, 108, 109, 370,1591 695,5701565 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1566 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1567 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 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, 1573 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1574 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1575 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 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, 1583 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1584 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1585 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 1592 1590 }; 1593 1591 1594 1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1595 1593 STATE-NUM. */ 1596 #define YYPACT_NINF -13 381594 #define YYPACT_NINF -1323 1597 1595 static const yytype_int16 yypact[] = 1598 1596 { 1599 4794, 8872, -1338, 118, -1338, -1338, -1338, -1338, -1338, -1338,1600 -13 38, -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,1601 -13 38, -1338, -1338, -1338, -1338, -1338, 75, 75, 75, 889,1602 7 61, 17, 6057, 231, -1338, -1338, -1338, -1338, -1338, 166,1603 -13 38, -1338, -1338, 566, 192, -1338, -1338, -1338, -1338, 4939,1604 -13 38, -1338, -1338, -1338, 195, 234, -1338, 1148, -1338, -1338,1605 -13 38, -1338, 170, 2042, 352, 44, 7574, -1338, -1338, 9333,1606 1 157, -1338, -1338, 1542, 364, 3919, 608, 982, 1542, 1041,1607 -13 38, -1338, 474, 402, -1338, 1542, 1242, -1338, 273, -1338,1608 455, 478, -1338, -1338, -1338, -1338, 354, 234, 75, -1338,1609 75, -1338, -1338, -1338, -1338, 9218, 1148, -1338, -1338, 1148,1610 -13 38, 387, -1338, 9518, -1338, -1338, 2342, 9556, -1338, 992,1611 992, 992, -1338, -1338, -1338, 75, -1338, -1338, -1338, 374,1612 386, 471, -1338, -1338, -1338, 480, -1338, -1338, -1338, -1338,1613 -13 38, 525, 539, -1338, -1338, 53, 8841, 1022, 54, 558,1614 563, 587, 592, 605, 615, 8759, 7097, 644, 585, -1338,1615 9371, -1338, -1338, -1338, -1338, 619, -1338, 349, 4637, 4637,1616 -13 38, 657, 446, -1338, -1338, -1338, -1338, 651, 453, 454,1617 476, 75, 659, -1338, -1338, 2042, 2592, 742, -1338, 57,1618 -13 38, 75, 75, 234, -1338, -1338, 101, -1338, 75, 75,1619 -13 38, 3079, 687, 706, 992, 6771, -1338, -1338, 707, 4939,1620 -13 38, -1338, 1542, -1338, -1338, -1338, 234, -1338, 1148, 195,1621 -13 38, 7912, -1338, 992, 992, 992, 234, -1338, 889, -1338,1622 4555, -1338, -1338, 691, 992, -1338, 992, -1338, 166, 8841,1623 -13 38, 713, -1338, 761, 725, 992, -1338, 889, 756, 768,1624 -13 38, 6057, 675, -1338, -1338, -1338, 9300, -1338, -1338, 2361,1625 -13 38, 742, 105, 10239, 9556, 2342, 3079, -1338, 194, -1338,1626 -13 38, 9518, 1148, 743, 7605, -1338, -1338, 126, -1338, 10586,1627 755, 847, 10372, 832, 10391, 10448, -1338, 839, -1338, -1338,1628 -13 38, -1338, 10467, 10467, 8615, 824, -1338, -1338, -1338, -1338,1629 -13 38, -1338, -1338, 901, -1338, 679, 3121, 8954, 10391, -1338,1630 507, 418, 680, 295, 694, 894, 852, 888, 930, 66,1631 -13 38, -1338, 938, 665, -1338, 380, -1338, -1338, 1022, -1338,1632 -13 38, 12, 949, -1338, 338, 949, 961, 166, -1338, -1338,1633 9 68, 9218, -1338, 983, 984, 9067, -1338, -1338, 776, 1555,1634 8 330, 6771, 1542, -1338, 1542, 992, 992, -1338, -1338, -1338,1635 -13 38, -1338, -1338, 992, 9218, 1148, -1338, -1338, 9594, 1098,1636 -13 38, 8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 995,1637 5 881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,1638 -13 38, -1338, -1338, -1338, -1338, -1338, 2342, -1338, 489, 993,1639 99 4, 1000, 732, 1004, 1007, 1008, 2592, -1338, -1338, 969,1640 195, 1030, -1338, -1338, 1024, -1338, -1338, -1338, 9300, -1338,1641 -13 38, -1338, -1338, -1338, 3079, -1338, 8841, 8841, -1338, 992,1642 2342, 6890, 1148, 8403, -1338, -1338, -1338, -1338, 9300, 105,1643 -13 38, -1338, 1542, 234, -1338, -1338, 9300, -1338, 6655, -1338,1644 -13 38, 992, 992, 465, 8248, 1029, 1028, 1015, 1033, 992,1645 -13 38, -1338, -1338, -1338, 9742, -1338, 591, 6518, -1338, 234,1646 1044, -13 38, 2342, 10668, 10296, -1338, -1338, -1338, -1338, 929,1647 3079, -1338, 8476, 742, 5771, -1338, -1338, -1338, 1039, 645,1648 9 38, 761, 7605, 809, 9518, -1338, 7605, -1338, -1338, -1338,1649 -13 38, 688, -1338, 1046, 847, 251, 8615, -1338, 9627, -1338,1650 -13 38, 8615, -1338, 8728, 8615, -1338, -1338, 1048, -1338, 751,1651 10 43, 711, 1057, -1338, -1338, 9447, 6740, -1338, 107, -1338,1652 -13 38, 10239, -1338, 318, 10239, -1338, -1338, -1338, -1338, -1338,1653 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338,1654 103 91, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,1655 103 91, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 4422, 10239,1656 -13 38, 665, 1831, -1338, -1338, 75, 75, -1338, -1338, 8841,1657 -13 38, -1338, 1024, 675, -1338, 1024, 10315, -1338, -1338, -1338,1658 5 500, 6740, 1056, 1064, -1338, 9556, -1338, -1338, 619, -1338,1659 106 5, 1323, 1067, 2196, 209, 938, -1338, 75, 75, 938,1660 243, -1338, 75, 75, 1024, -1338, -1338, 75, 75, -1338,1661 9 49, 9665, 1148, 10813, 217, 306, 9665, -1338, 2361, -1338,1662 9 38, -1338, 9218, -1338, 212, 8027, 8027, 8027, 1148, -1338,1663 6120, 1053, 995, 535, 1061, 1066, -1338, 1071, 4637, 421,1664 -13 38, 1166, 1148, 8027, 675, 2342, 675, 742, 394, 949,1665 -13 38, -1338, 788, 949, -1338, -1338, -1338, 847, -1338, 949,1666 2 34, 9742, -1338, 764, 1087, 806, 1088, -1338, 1089, 234,1667 -13 38, -1338, 9300, 234, 1090, 9627, 1096, -1338, 1729, -1338,1668 5 27, 550, 761, -1338, 761, 1102, 10391, -1338, 761, 10813,1669 -13 38, -1338, 1092, -1338, -1338, -1338, 675, -1338, 10741, 984,1670 -13 38, 8027, 857, 8330, -1338, -1338, 619, 1103, 1112, 1039,1671 3523, -1338, -1338, 7605, -1338, -1338, 1097, -1338, -1338, 1121,1672 -13 38, 1097, 1124, 10586, 10239, 1105, 1104, 94, 1128, 1123,1673 11 32, 1133, -1338, 1136, 1138, 9485, 6859, -1338, 10239, -1338,1674 711, 1914, -1338, -1338, -1338, 75, 75, 6186, 10239, 1134,1675 -13 38, -1338, 822, -1338, 10239, -1338, -1338, -1338, 715, -1338,1676 -13 38, -1338, -1338, 507, 507, 418, 418, 680, 680, 680,1677 680, 295, 295, 694, 894, 852, 888, 930, 10391, 250,1678 -1338, 9742, 1151, 1153, 1158, 1831, -1338, -1338, -1338, -1338,1679 -1338, 9742, 827, 8027, -1338, 9218, -1338, 7216, 9180, -1338,1680 8061, 7097, -1338, -1338, 1323, 9742, 936, 1159, 1162, 1164,1681 11 67, 1170, 1175, 1178, -1338, 3437, 2196, -1338, -1338, -1338,1682 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,1683 -13 38, -1338, -1338, -1338, 1024, -1338, -1338, -1338, 938, -1338,1684 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, 1179, -1338, 1180,1685 1181, -1338, -1338, 195, 1134, 6120, -1338, -1338, -1338, 5881,1686 1143, -1338, -1338, -1338, -1338, 761, 6348, 1247, -1338, -1338,1687 -13 38, -1338, 1165, 195, -1338, -1338, 1024, -1338, -1338, 1024,1688 230, 1024, -1338, -1338, -1338, -1338, -1338, -1338, 9409, -1338,1689 234, -1338, -1338, 554, 555, 9594, 7335, 2114, 10391, 2586,1690 -13 38, -1338, 1163, 40, 1163, -1338, 761, -1338, 75, -1338,1691 -1338, 8985, 1015, -1338, -1338, -1338, 1028, 1185, 1186, -1338,1692 -1338, 1189, 1191, -1338, 857, 1994, -1338, 444, -1338, 3523,1693 938, -1338, 1195, 7605, 9703, 8841, 1196, -1338, -1338, 1192,1694 1 200, 1182, -1338, 10391, 1205, 298, 1203, -1338, 1206, 675,1695 1206, -1338, -1338, 1206, 1209, -1338, 1214, 1216, 1217, 1914,1696 -13 38, -1338, -1338, 5881, -1338, -1338, -1338, -1338, 1215, 10239,1697 1220, 831, -1338, 10239, -1338, 831, -1338, -1338, 10239, -1338,1698 9 72, 949, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 995,1699 984, 9067, -1338, -1338, 7454, 1229, -1338, 975, 949, -1338,1700 979, 991, 949, -1338, 992, 3705, -1338, -1338, -1338, 9742,1701 9742, -1338, 8403, 8403, -1338, 1226, 1232, 1235, 1240, -1338,1702 1244, 564, 43, 1134, -1338, 831, -1338, 4637, -1338, 10239,1703 582, -1338, 6621, 1243, 1245, 10182, 1248, 1251, 46, 70,1704 103, 10239, 1252, 234, 10239, 10239, 1238, 1257, 333, 1239,1705 -13 38, -1338, -1338, 1258, -1338, -1338, -1338, -1338, -1338, -1338,1706 -13 38, -1338, -1338, 761, 1268, 10239, -1338, 9742, 9742, 75,1707 1269, -1338, 9098, -1338, -1338, 767, -1338, 2586, -1338, -1338,1708 -13 38, -1338, 1729, -1338, -1338, 1270, -1338, -1338, -1338, -1338,1709 1 273, 1994, -1338, -1338, 1256, -1338, 1097, -1338, -1338, 2342,1710 1271, -1338, -1338, -1338, 836, 1276, -1338, 94, 1279, 10391,1711 1265, 94, 94, 1293, 9447, 1023, 949, -1338, -1338, 1071,1712 10239, 1292, 1215, 513, -1338, -1338, 1296, -1338, -5, -1338,1713 1297, 1296, -1338, -1338, 1304, -1338, -1338, 1024, 1306, 1309,1714 6978, 1310, 1312, 1313, -1338, -1338, 1316, -1338, -1338, 1024,1715 -13 38, -1338, -1338, -1338, 1024, 10239, 10239, 984, 1315, -1338,1716 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,1717 -1338, 10391, 10391, 1317, 1318, 1296, -1338, -1338, 761, -1338,1718 -1338, -1338, 7839, 9703, 10239, 10239, 1381, 10239, -1338, 1299,1719 -1338, 1303, -1338, 1305, 10239, 1311, 10239, 1014, 1314, 39,1720 75, 5221, 1493, -1338, -1338, 6348, 1321, 584, -1338, -1338,1721 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338, 8476,1722 1328, -1338, -1338, 9703, 589, 606, -1338, 1327, 1325, 847,1723 1334, -1338, 331, -1338, -1338, -1338, -1338, 1024, 1332, -1338,1724 -1338, 1336, 831, 1339, 320, 457, -1338, 1341, -1338, 9742,1725 -13 38, -1338, -1338, -1338, -1338, 1345, -1338, 9742, 9742, 9742,1726 -13 38, -1338, 1351, -1338, 1355, 1358, 1360, 623, 8100, 8215,1727 -13 38, -1338, 463, -1338, 1361, 1370, -1338, 8549, 841, 866,1728 1374, 868, 6487, -1338, -1338, -1338, 616, -1338, 881, 1375,1729 1379, 234, 1429, 861, -1338, -1338, 10239, -1338, 10182, 10239,1730 -1338, -1338, -1338, 1383, 1384, -1338, -1338, -1338, 1382, -1338,1731 -13 38, -1338, -1338, -1338, -1338, 9703, 847, 1386, -1338, 1366,1732 847, 9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,1733 -13 38, -1338, -1338, -1338, -1338, -1338, 1389, 1390, -1338, -1338,1734 -13 38, -1338, -1338, -1338, -1338, 1395, -1338, 1394, -1338, -1338,1735 101 82, 334, 10239, 10182, -1338, 1398, 10239, -1338, 339, 1415,1736 1 417, -1338, -1338, 1405, 1406, 1393, -1338, 840, -1338, -1338,1737 -1338, 1148, 2342, 1403, -1338, 329, 10391, -1338, 897, -1338,1738 831, 831, 1411, 1412, 1416, 1421, -1338, -1338, 8403, 1423,1739 -1338, 1485, 10391, 1407, -1338, -1338, 10094, -1338, 898, -1338,1740 1410, 10182, 1422, -1338, -1338, 1434, -1338, 1443, -1338, 1459,1741 1461, -1338, 1428, 9703, -1338, -1338, -1338, 847, 675, 1452,1742 1 431, 1455, 1296, 1296, -1338, -1338, -1338, -1338, -1338, 10182,1743 81, -1338, 447, -1338, -1338, 7690, -1338, -1338, 1435, 10239,1744 -1338, 10239, 7690, 234, 9627, 234, 9627, 1465, -1338, 1466,1745 -13 38, -1338, 1456, -1338, -1338, 909, -1338, -1338, -1338, 1470,1746 1471, -1338, 10391, 10391, -1338, -1338, 880, 254, -1338, -1338,1747 1453, -1338, 880, -1338, -1338, 2645, 675, -1338, -1338, 234,1748 9627, 234, 9627, 1480, 1458, 675, -1338, -1338, -1338, -1338,1749 10094, 1476, 880, 7766, 10239, 10006, 1478, 880, 1486, 2645,1750 2922, -1338, -1338, -1338, 1487, -1338, -1338, -1338, -1338, 8841,1751 -1338, -1338, -1338, 9873, -1338, 10094, -1338, -1338, 1467, 9785,1752 -1338, -1338, 10006, 234, 2922, 234, 1495, 1498, 927, -1338,1753 9873, -1338, -1338, -1338, 9785, -1338, -1338, -1338, 234, 234,1754 -13 38, -1338, -1338, -1338, -1338, -1338, -1338, -13381597 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 1755 1753 }; 1756 1754 … … 1758 1756 static const yytype_int16 yypgoto[] = 1759 1757 { 1760 -13 38, 4260, 2887, -1338, 1463, -1338, 1198, 661, -268, 942,1761 -13 38, 552, -528, -471, -934, -784, -1338, 4910, 0, -1338,1762 -100, 434, 472, 506, 438, 1049, 1050, 1051, 1062, 1055,1763 -1338, 1094, -577, 5180, -896, -1338, -712, 636, -68, -593,1764 -654, -1338, 1469, -1338, 408, -1065, -1338, -1338, 159, -1338,1765 -11 18, -880, 265, -1338, -1338, -1338, -1338, 92, -1253, -1338,1766 -13 38, -1338, -1338, -1338, -1338, 341, -1303, 36, -1338, -904,1767 -1338, 518, 311, -1338, 196, -1338, -309, -1338, -1338, -1338,1768 571, -749, -1338, -1338, 16, -930, 172, 1119, -1338, -1338,1769 -1338, -149, -1338, 71, 966, -196, 1532, 4034, -1338, -1338,1770 83, 174, 287, 2700, -1338, 1836, -1338, -1338, 55, 2097,1771 -1338, 2401, 2181, -1338, -1338, -1338, -656, -1338, 962, 964,1772 560, 736, -249, -1338, -1338, -1338, 955, 734, -456, -1338,1773 -116, -94, 869, -1338, -1338, -963, -979, -2, 913, 1074,1774 29, -1338, 719, 357, -283, -191, -146, 681, 789, -1338,1775 1010, -1338, 2818, 1589, -439, 940, -1338, -1338, 720, -1338,1776 -237, -1338, 109, -1338, -1338, -1338, -1275, 435, -1338, -1338,1777 -1338, 1183, -1338, 32, -1338, -1338, -845, -111, -1337, -112,1778 3150, -1338, 3946, -1338, 941, -1338, -138, 1137, -181, -176,1779 -174, 7, -40, -33, -28, 1352, 38, 50, 77, -134,1780 -1 73, -171, -166, -165, -261, -504, -490, -476, -565, -319,1781 -523, -1338, -1338, -525, 1107, 1111, 1115, -135, 4740, -582,1782 -5 83, -534, -519, -480, -1338, -505, -725, -715, -709, -592,1783 - 312, -258, -1338, -1338, 326, 26, -81, -1338, 3689, -15,1784 - 601, -3561758 -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 1785 1783 }; 1786 1784 … … 1788 1786 positive, shift that token. If negative, reduce the rule which 1789 1787 number is the opposite. If YYTABLE_NINF, syntax error. */ 1790 #define YYTABLE_NINF -52 51788 #define YYTABLE_NINF -522 1791 1789 static const yytype_int16 yytable[] = 1792 1790 { 1793 49, 113, 453, 149, 399, 267, 768, 97, 428, 400, 1794 150, 401, 402, 505, 403, 151, 753, 114, 821, 404, 1795 405, 829, 383, 384, 260, 966, 106, 106, 440, 846, 1796 610, 1072, 49, 597, 166, 967, 50, 921, 828, 97, 1797 357, 968, 741, 147, 1175, 975, 870, 796, 407, 49, 1798 1383, 1141, 408, 726, 413, 76, 161, 731, 106, 1173, 1799 1174, 421, 358, 186, 143, 1443, 209, 822, 50, 49, 1800 193, 63, 202, 216, 342, 410, 226, 123, 820, 31, 1801 1254, 152, 823, 69, 399, 219, 177, 76, 605, 400, 1802 425, 401, 402, 153, 403, 106, 31, 817, 166, 404, 1803 405, 1185, 1306, 63, 280, 113, 629, 471, 1255, 670, 1804 633, 818, 1191, 113, 31, 69, 266, 271, 1199, 925, 1805 154, 580, 203, 411, 832, 819, 142, 1071, 407, 679, 1806 839, 327, 408, 413, 724, 261, 1443, 683, 262, 1181, 1807 31, 950, 1201, 674, 676, 149, 307, 147, 1462, 475, 1808 477, 411, 150, 1488, 161, 113, 345, 151, 1208, 1209, 1809 209, 567, 281, 252, 329, 1182, 252, 373, 411, 409, 1810 715, 1307, 56, 115, 70, 1203, 291, 1472, 1200, 110, 1811 861, 862, 966, 915, 510, 186, 186, 1516, 577, 1518, 1812 41, 42, 967, 161, 436, 568, 581, 879, 968, 584, 1813 122, 266, 1202, 1182, 56, 953, 70, 548, 549, 49, 1814 419, 730, 411, 1238, 476, 817, 161, 1242, 760, 668, 1815 1204, 209, 1060, 152, 327, 149, 519, 721, 443, 818, 1816 743, 821, 150, 31, 1249, 153, 735, 151, 210, 307, 1817 212, 220, 144, 819, 1018, 548, 1082, 439, 31, 833, 1818 1175, 49, 1530, 836, 493, 933, 436, 494, 97, 271, 1819 589, 1017, 154, 413, 271, 266, 266, 421, 665, 471, 1820 993, 113, 666, 161, 853, 146, 1143, 106, 856, 1545, 1821 822, 548, 31, 463, 610, 657, 181, 50, 1447, 471, 1822 342, 1005, 166, 1190, 307, 823, 800, 471, -236, -236, 1823 1175, 483, 168, 481, 155, 411, 76, 307, 500, 597, 1824 817, 76, 527, 672, 597, 1173, 1174, 357, 830, 677, 1825 602, 476, 63, 572, 818, 1095, 169, 472, 147, 849, 1826 599, 1086, 806, 850, 69, 373, 832, 447, 819, 358, 1827 1079, 113, 665, 569, 413, 345, 666, 996, 171, 603, 1828 621, 821, 837, 829, 602, 201, 460, 229, 673, 675, 1829 230, 736, 1191, 234, 626, 236, 748, -292, 626, -236, 1830 1072, 113, 245, 900, 855, 163, 1118, 177, 1402, 1403, 1831 988, 737, 1447, 1402, 1403, 557, 558, 1447, 714, 247, 1832 110, 1196, 110, 441, 630, 442, 266, 765, 634, 1134, 1833 822, 41, 42, 41, 42, 286, 186, 1447, 1120, 846, 1834 357, 327, 327, 373, 1447, 823, 41, 42, 851, 1175, 1835 559, 560, 852, 56, 266, 70, 307, 307, 1121, 766, 1836 266, 1336, 358, 626, 715, 1438, 577, 577, 519, 163, 1837 1529, 1329, 514, 519, 342, 1427, 519, 583, 1404, 411, 1838 770, 771, 772, 1413, 113, 250, 1432, 1433, 1205, 1428, 1839 1540, 1330, 703, 252, 1128, 377, 1071, 1544, 1334, 954, 1840 1337, 1339, 266, 76, 110, 357, 139, 140, -520, 327, 1841 266, 378, 626, -10, 49, 41, 42, 373, 720, 472, 1842 578, 97, 1021, 76, 113, -444, 579, 358, 327, 229, 1843 789, 76, 871, 884, 1106, 411, 307, 610, 113, 472, 1844 106, 307, 1139, 307, 307, 1191, 243, 472, 263, 1018, 1845 50, 751, 1191, 885, 212, 113, 345, 888, 1248, 110, 1846 1161, 1163, 872, 471, 643, 435, 1134, 553, 554, 76, 1847 41, 42, 1240, 1366, 881, 883, 110, 998, 139, 238, 1848 912, 873, 806, 712, 914, 63, 851, 41, 42, 930, 1849 1102, 1060, 387, 1473, 327, 1016, 498, 69, 1338, 390, 1850 392, 572, 572, 1191, -471, 684, -471, 1474, 388, 307, 1851 -445, 579, 1128, 239, 1103, 391, 393, 915, 240, 276, 1852 626, 345, 394, -471, 715, 621, 1500, 435, 252, 329, 1853 411, 603, 1505, 603, 1280, 1281, 847, 110, 395, 139, 1854 140, 599, 2, 206, 4, 5, 6, 7, 41, 42, 1855 523, 626, 1525, -124, 550, -124, 626, 1532, 621, -124, 1856 551, 552, 626, 163, 278, 626, 626, 626, 37, 229, 1857 806, 234, 40, 916, -124, -124, 866, 212, 279, 41, 1858 42, 848, 714, 626, 1376, 266, 56, 974, 70, 917, 1859 577, 48, 112, 1089, 342, 1089, 918, 863, 330, 703, 1860 916, 918, 1029, 331, 808, 43, -106, 35, 1016, 36, 1861 -106, 878, 919, 45, 46, 113, 1083, 1084, 909, 597, 1862 112, 112, 1076, 48, 372, 357, 1478, 332, 1188, 1364, 1863 1188, 705, 333, 1478, 48, 1320, 1401, 706, 1114, 1409, 1864 48, 626, 935, 621, 1189, 334, 1312, 358, 48, 720, 1865 720, 1321, 1322, 1036, 48, 335, 399, 48, 376, 229, 1866 48, 400, 748, 401, 402, 1352, 403, 76, 1323, 1353, 1867 -3, 404, 405, 112, 112, 113, 345, 110, 1367, 141, 1868 751, 751, 1446, 472, 1526, 722, 371, 1450, 41, 42, 1869 389, 723, 500, 76, 528, 529, 530, 48, 555, 556, 1870 48, 407, 385, 1412, 571, 408, 411, 48, 413, 472, 1871 692, 1377, 45, 46, 966, 1471, 561, 562, 531, 703, 1872 532, 397, 533, 534, 967, 572, 426, 442, 732, 703, 1873 968, 241, 244, 626, 733, 626, 409, 1001, 48, 1429, 1874 626, 345, 714, 703, 603, 427, 48, 712, 1165, 432, 1875 750, 48, 411, 450, 342, 1440, 603, -368, 45, 46, 1876 986, 983, 523, 110, 523, 139, 140, 523, 715, -397, 1877 523, 419, 661, 411, 41, 42, 48, 48, 37, 954, 1878 174, 175, 40, 954, 954, 1146, 1480, 484, 1481, 41, 1879 42, 747, 48, 738, 504, 739, 806, 748, 740, 1539, 1880 48, 744, 1158, 212, 894, 1539, 307, 329, 411, 48, 1881 748, 110, 48, 139, 140, 372, 1539, 212, 461, 112, 1882 1539, 1186, 41, 42, 808, 1498, 1440, 887, 626, 411, 1883 462, 548, 106, 110, 112, 113, 345, 909, 112, 909, 1884 1134, 1527, 48, 112, 41, 42, 896, 715, 727, 1373, 1885 1374, 113, 748, 728, 1402, 1403, 48, 48, 1172, 291, 1886 327, 76, 982, 48, 935, 935, 525, 995, 983, 720, 1887 48, 508, 510, 706, 113, 307, 1236, 63, 513, 665, 1888 413, 1360, 579, 666, 912, 1422, 983, 748, 914, 69, 1889 1107, 129, 457, 130, 131, 132, 934, 116, 602, 751, 1890 106, 1327, 41, 42, 45, 46, 1361, 712, 1363, 564, 1891 1512, 212, 748, 527, 748, -293, 847, 773, 774, 48, 1892 1246, 1368, 8, 9, 10, 11, 12, 748, 1231, 781, 1893 782, 345, 8, 9, 10, 11, 12, 1430, 1448, 48, 1894 48, 692, 563, 1427, 748, 159, 565, 703, 703, 1494, 1895 498, 31, 626, 626, 566, 1495, 48, 775, 776, 1128, 1896 48, 31, 8, 9, 10, 11, 12, 1550, 481, 329, 1897 411, 644, 307, 579, -294, 830, 329, 602, 56, 34, 1898 70, 8, 9, 10, 11, 12, 714, 48, 1384, 34, 1899 338, 31, 1384, 777, 778, 779, 780, 48, 106, 569, 1900 -441, 258, 1299, 1300, 1301, 703, 703, 587, 667, 159, 1901 31, 1145, 113, 411, 1157, 48, 411, 909, 1160, 34, 1902 602, 48, 909, 48, 37, 590, -3, 76, 40, 645, 1903 1162, 935, 602, 658, 659, 41, 42, 639, 34, 266, 1904 660, 37, 323, 472, 662, 40, 1108, 663, 664, 57, 1905 57, 339, 41, 42, 626, 1193, 1288, 1289, 112, 1291, 1906 342, 43, 1245, 48, 411, 257, 1296, 96, 1298, 45, 1907 46, 48, 669, 693, 694, 48, 696, 698, 719, 48, 1908 345, 57, 112, 749, 112, 734, 45, 46, -240, 1463, 1909 745, 2, 206, 4, 5, 6, 7, 757, 809, 96, 1910 37, 430, 174, 175, 40, 434, 810, 813, 442, 824, 1911 148, 41, 42, -12, 1355, 57, 96, 869, 57, 112, 1912 228, -13, 271, 113, 112, 875, 868, 895, 897, 111, 1913 189, 898, -418, 96, 902, 323, 96, 376, 905, 219, 1914 725, 113, 729, 723, 56, 307, 70, 923, -524, 106, 1915 37, 712, 174, 175, 40, 1316, 35, 938, 36, 626, 1916 945, 41, 42, 113, 947, 951, 952, 434, 958, 959, 1917 488, 106, 960, 961, 112, -295, 962, 692, 963, 1107, 1918 979, 48, 8, 9, 10, 11, 12, 703, 1038, 106, 1919 521, 990, 48, 991, 48, 703, 703, 703, 992, 1007, 1920 76, 1425, 1008, 159, 1009, 348, 1073, 1010, 626, 626, 1921 1011, 31, 1538, 48, 96, 1012, 63, 271, 1013, 1024, 1922 -406, -405, 307, 908, 1408, 1096, 1075, 96, 69, 48, 1923 712, 1098, 1097, 1099, 112, 1105, 1115, 588, 748, 34, 1924 1116, 594, 1117, 48, 1119, 112, 48, 112, 106, 1122, 1925 973, 1124, 398, 189, 1125, 113, 1126, 1127, 399, 703, 1926 627, 1130, 1133, 400, 631, 401, 402, 339, 403, 1155, 1927 57, 1107, 1176, 404, 405, 1178, 96, 76, 1177, 48, 1928 1179, 106, 1194, 112, 1195, 112, 1180, 1197, 96, 112, 1929 1198, 1206, 867, 472, 210, 220, 212, 112, 1210, 1211, 1930 57, 1213, 407, -3, 1511, 1193, 408, 704, 1218, 1223, 1931 48, 48, 266, 1228, 493, 1226, 1232, 56, 96, 70, 1932 1237, 1239, 323, 323, 48, 37, 665, 1241, 626, 40, 1933 666, 162, 479, 1244, 1250, 1108, 41, 42, 692, 1256, 1934 1424, 920, 1252, 922, 1258, 194, 1260, 457, 217, 1261, 1935 688, 227, 1262, 113, 1263, 1264, 1266, 1273, 1290, 1282, 1936 1283, 1293, 814, 116, 602, 1294, 1311, 1295, 1318, 1107, 1937 45, 46, 1324, 1297, 1328, 113, 1305, 1332, 1333, 106, 1938 465, 1335, 113, 1340, 113, 1326, 113, 1342, 488, 441, 1939 323, 442, 488, 1348, 56, 96, 70, 1349, 1350, 149, 1940 1351, 106, 521, 1358, 521, 48, 150, 521, 106, 323, 1941 521, 151, 1359, 1362, 1369, 1510, 604, 48, 1370, 1301, 1942 113, 339, 113, 1378, 1379, 1386, 1380, 1108, 1387, 162, 1943 76, 1396, 1397, 113, 327, -407, 1400, 76, 1411, 1510, 1944 1510, 1415, 374, 1417, 1419, 1420, 472, 161, 1426, 307, 1945 176, 1434, 1435, 472, 173, 1421, 1436, 1439, 1193, 106, 1946 644, 1437, 66, 117, 1510, 1193, 112, 1444, 162, 1353, 1947 893, 373, 1449, 189, 1453, 323, 2, 206, 4, 5, 1948 6, 7, 348, 1455, 1451, 1457, 804, 1459, 76, 48, 1949 1461, 162, 1466, 1467, 66, 1468, 253, 1479, 48, 176, 1950 48, 1493, 176, 444, 472, 1489, 1491, 112, 528, 529, 1951 530, 160, 1496, 1497, 704, 1504, 1193, 845, 645, 1519, 1952 1520, 1524, 594, 1531, 1041, 1108, 1533, 1535, 854, 1541, 1953 48, 221, 531, 57, 532, 1548, 533, 1309, 1549, 890, 1954 1212, 35, 783, 36, 784, 1132, 785, 56, 176, 70, 1955 112, 96, 787, 1310, 56, 604, 70, 37, 786, 183, 1956 184, 40, 1499, 1414, 644, 1091, 1551, 259, 41, 42, 1957 1243, 1388, 112, 1372, 1217, 348, 112, 903, 1482, 904, 1958 1090, 688, 1225, 926, 1129, 215, 1094, 802, 1037, 874, 1959 989, 1104, 417, 940, 601, 111, 602, 717, 1319, 0, 1960 994, 242, 45, 46, 948, 56, 0, 70, 792, 328, 1961 374, 176, 793, 0, 1006, 437, 794, 259, 350, 488, 1962 0, 0, 645, 0, 0, 445, 112, 0, 0, 0, 1963 0, 0, 0, 0, 704, 0, 215, 0, 0, 0, 1964 348, 339, 0, 0, 704, 0, 0, 0, 406, 0, 1965 0, 0, 0, 0, 0, 0, 761, 0, 704, 0, 1966 0, 767, 0, 424, 112, 176, 429, 431, 816, 0, 1967 604, 160, 176, 0, 0, 0, 0, 0, 48, 215, 1968 0, 0, 0, 48, 348, 348, 348, 0, 374, 0, 1969 0, 0, 448, 520, 0, 0, 451, 0, 452, 0, 1970 48, 997, 348, 0, 0, 0, 804, 459, 0, 0, 1971 1486, 465, 1486, 66, 0, 0, 0, 0, 473, 0, 1972 924, 0, 1041, 0, 0, 0, 0, 0, 480, 0, 1973 0, 37, 0, 183, 184, 40, 431, 0, 0, 0, 1974 215, 176, 41, 42, 0, 0, 1486, 0, 1486, 0, 1975 0, 0, 0, 0, 0, 913, 0, 0, 176, 0, 1976 348, 0, 176, 0, 0, 0, 74, 0, 907, 0, 1977 411, 8, 9, 10, 11, 12, 45, 46, 215, 112, 1978 0, 0, 880, 215, 882, 0, 816, 604, 0, 908, 1979 0, 0, 0, 0, 804, 0, 0, 0, 74, 0, 1980 31, 339, 48, 259, 0, 0, 0, 595, 0, 0, 1981 0, 0, 987, 623, 0, 0, 0, 688, 1170, 1171, 1982 0, 0, 0, 0, 0, 176, 628, 0, 34, 0, 1983 628, 0, 0, 259, 929, 222, 0, 1286, 0, 488, 1984 1109, 323, 681, 112, 0, 112, 112, 0, 0, 0, 1985 0, 0, 348, 0, 8, 9, 10, 11, 12, 0, 1986 348, 0, 704, 704, 0, 0, 0, 0, 707, 215, 1987 571, 0, 411, 0, 0, 0, 1220, 1221, 45, 46, 1988 473, 816, 0, 31, 0, 0, 0, 0, 0, 1031, 1989 0, 0, 0, 604, 0, 350, 0, 845, 0, 0, 1990 473, 0, 0, 0, 0, 520, 0, 0, 473, 0, 1991 520, 34, 0, 520, 0, 0, 0, 0, 0, 0, 1992 704, 704, 353, 0, 0, 57, 699, 0, 0, 431, 1993 0, 0, 924, 0, 8, 9, 10, 11, 12, 0, 1994 0, 0, 0, 0, 713, 0, 66, 0, 0, 0, 1995 215, 0, 0, 750, 431, 411, 0, 0, 431, 0, 1996 0, 45, 46, 31, 0, 0, 0, 0, 0, 0, 1997 0, 0, 48, 48, 1085, 0, 913, 924, 688, 0, 1998 0, 112, 112, 176, 0, 0, 0, 259, 350, 0, 1999 0, 34, 215, 57, 0, 0, 449, 0, 0, 0, 2000 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 2001 0, 0, 1142, 0, 0, 176, 0, 74, 0, 112, 2002 804, 0, 74, 0, 0, 0, 0, 77, 0, 0, 2003 0, 176, 0, 934, 795, 602, 0, 0, 0, 0, 2004 0, 45, 46, 0, 37, 176, 183, 184, 40, 0, 2005 0, 0, 628, 807, 0, 41, 42, 0, 1341, 77, 2006 0, 0, 0, 1031, 0, 826, 1343, 1344, 1345, 892, 2007 1317, 348, 348, 0, 0, 0, 48, 112, 899, 0, 2008 0, 185, 901, 595, 0, 0, 112, 1123, 595, 45, 2009 46, 57, 0, 0, 628, 0, 223, 350, 350, 350, 2010 48, 48, 704, 0, 0, 0, 0, 339, 0, 1135, 2011 704, 704, 704, 1135, 215, 350, 37, 222, 183, 184, 2012 40, 0, 0, 0, 0, 48, 176, 41, 42, 1109, 2013 1389, 0, 0, 699, 0, 0, 8, 9, 10, 11, 2014 12, 0, 215, 924, 473, 0, 0, 215, 0, 0, 2015 0, 0, 0, 907, 913, 411, 0, 0, 0, 913, 2016 0, 45, 46, 1135, 0, 31, 0, 0, 0, 0, 2017 473, 0, 0, 350, 704, 0, 0, 214, 0, 0, 2018 0, 0, 939, 355, 74, 431, 0, 0, 0, 0, 2019 0, 0, 0, 34, 0, 0, 0, 0, 37, 353, 2020 183, 184, 40, 0, 74, 924, 924, 259, 713, 41, 2021 42, 0, 74, 969, 0, 0, 0, 0, 215, 0, 2022 0, 1109, 0, 0, 0, 0, 0, 0, 214, 0, 2023 353, 0, 215, 0, 0, 601, 0, 602, 0, 0, 2024 0, 57, 57, 45, 46, 0, 0, 0, 353, 0, 2025 74, 0, 0, 699, 0, 0, 0, 0, 0, 0, 2026 0, 0, 0, 699, 57, 350, 0, 628, 0, 0, 2027 1004, 214, 628, 807, 0, 0, 0, 699, 77, 0, 2028 0, 0, 57, 77, 0, 0, 0, 1015, 0, 0, 2029 0, 176, 353, 0, 0, 0, 0, 0, 0, 1081, 2030 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2031 17, 18, 19, 20, 21, 22, 23, 24, 25, 1109, 2032 0, 26, 27, 28, 0, 0, 215, 348, 348, 0, 2033 31, 79, 214, 0, 0, 0, 57, 0, 66, 0, 2034 0, 57, 0, 0, 37, 0, 183, 184, 40, 0, 2035 1485, 0, 1485, 0, 0, 41, 42, 353, 34, 0, 2036 628, 0, 0, 79, 0, 207, 39, 259, 713, 0, 2037 214, 1087, 0, 0, 57, 214, 0, 0, 223, 0, 2038 1135, 265, 1135, 1135, 0, 0, 1485, 0, 1485, 45, 2039 46, 0, 0, 0, 0, 0, 0, 1101, 0, 0, 2040 224, 353, 353, 353, 0, 431, 117, 0, 45, 46, 2041 924, 0, 0, 0, 0, 323, 0, 0, 0, 353, 2042 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 2043 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 2044 0, 0, 0, 0, 0, 77, 0, 348, 74, 0, 2045 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 2046 355, 214, 0, 595, 0, 77, 0, 0, 0, 0, 2047 0, 0, 57, 77, 74, 0, 429, 353, 0, 0, 2048 0, 699, 699, 0, 350, 350, 0, 356, 0, 0, 2049 0, 355, 0, 0, 57, 0, 924, 924, 0, 0, 2050 0, 57, 0, 0, 1192, 0, 0, 0, 0, 355, 2051 0, 77, 353, 0, 0, 0, 0, 0, 1135, 1135, 2052 0, 0, 0, 215, 0, 0, 8, 9, 10, 11, 2053 12, 0, 8, 9, 10, 11, 12, 0, 0, 699, 2054 699, 0, 214, 0, 0, 0, 0, 0, 0, 0, 2055 0, 0, 57, 355, 0, 31, 1464, 353, 0, 0, 2056 0, 31, 0, 0, 0, 0, 0, 353, 0, 353, 2057 0, 0, 0, 0, 222, 0, 479, 353, 0, 0, 2058 0, 353, 79, 34, 214, 0, 628, 79, 37, 34, 2059 183, 184, 40, 0, 37, 0, 183, 184, 40, 41, 2060 42, 0, 0, 0, 176, 41, 42, 0, 0, 0, 2061 0, 0, 713, 0, 1513, 0, 0, 0, 355, 0, 2062 0, 0, 0, 1521, 0, 907, 0, 411, 0, 0, 2063 0, 185, 0, 45, 46, 0, 0, 0, 0, 45, 2064 46, 0, 74, 0, 0, 0, 0, 37, 0, 183, 2065 184, 40, 0, 0, 0, 1287, 0, 0, 41, 42, 2066 0, 0, 355, 355, 355, 0, 0, 0, 0, 0, 2067 0, 0, 353, 259, 0, 0, 0, 66, 0, 0, 2068 355, 0, 224, 0, 1509, 0, 411, 0, 0, 699, 2069 0, 713, 45, 46, 0, 117, 213, 0, 355, 0, 2070 1371, 0, 0, 0, 0, 232, 214, 0, 0, 77, 2071 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 2072 0, 699, 0, 0, 0, 0, 0, 0, 0, 699, 2073 699, 699, 0, 0, 214, 77, 0, 0, 355, 214, 2074 350, 350, 0, 0, 0, 0, 0, 213, 86, 79, 2075 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 2076 0, 0, 0, 0, 356, 0, 0, 0, 0, 79, 2077 0, 0, 0, 355, 176, 0, 0, 79, 0, 0, 2078 86, 0, 0, 0, 0, 353, 353, 117, 353, 353, 2079 213, 0, 0, 699, 0, 356, 0, 0, 0, 0, 2080 0, 0, 0, 0, 0, 0, 215, 0, 74, 0, 2081 214, 0, 0, 356, 0, 79, 0, 225, 355, 0, 2082 0, 0, 0, 0, 214, 0, 0, 0, 355, 0, 2083 355, 0, 0, 0, 0, 223, 0, 0, 355, 0, 2084 0, 0, 355, 353, 353, 0, 0, 0, 0, 0, 2085 0, 213, 1483, 0, 1487, 0, 0, 356, 0, 0, 2086 350, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2087 167, 0, 172, 0, 0, 178, 179, 180, 0, 182, 2088 0, 0, 0, 0, 0, 117, 0, 0, 1515, 213, 2089 1517, 31, 0, 233, 213, 0, 0, 0, 0, 0, 2090 0, 0, 0, 77, 363, 248, 249, 1192, 0, 499, 2091 0, 0, 0, 0, 1192, 0, 353, 0, 214, 34, 2092 0, 0, 356, 0, 37, 0, 183, 184, 40, 0, 2093 0, 0, 1546, 355, 1547, 41, 42, 0, 0, 0, 2094 0, 0, 0, 0, 0, 0, 0, 1554, 1555, 0, 2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 2096 0, 1509, 0, 411, 0, 1192, 356, 356, 356, 45, 2097 46, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 2098 213, 74, 0, 0, 356, 0, 0, 0, 0, 0, 2099 0, 0, 0, 353, 0, 353, 0, 0, 0, 86, 2100 0, 0, 356, 0, 86, 0, 0, 0, 0, 0, 2101 0, 0, 0, 79, 0, 0, 0, 0, 0, 8, 2102 9, 10, 11, 12, 0, 353, 0, 0, 0, 0, 2103 0, 0, 0, 353, 353, 353, 0, 0, 0, 79, 2104 0, 0, 356, 0, 353, 353, 355, 355, 31, 355, 2105 355, 0, 0, 0, 0, 0, 0, 0, 74, 0, 2106 0, 213, 0, 0, 0, 0, 0, 0, 0, 77, 2107 0, 0, 0, 0, 0, 0, 34, 356, 213, 0, 2108 0, 37, 0, 183, 184, 40, 0, 0, 0, 0, 2109 0, 0, 41, 42, 0, 0, 0, 353, 0, 225, 2110 0, 0, 0, 213, 355, 355, 124, 127, 128, 0, 2111 0, 0, 0, 0, 0, 214, 0, 0, 265, 0, 2112 0, 0, 356, 0, 0, 0, 45, 46, 0, 0, 2113 0, 0, 356, 0, 356, 0, 0, 0, 0, 224, 2114 0, 0, 356, 0, 0, 0, 356, 0, 535, 536, 2115 537, 538, 539, 540, 541, 542, 543, 544, 545, 0, 2116 0, 592, 0, 600, 353, 0, 86, 0, 0, 0, 2117 0, 0, 0, 0, 624, 625, 0, 355, 254, 0, 2118 255, 363, 546, 0, 0, 0, 86, 0, 0, 0, 2119 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 2121 0, 74, 363, 0, 0, 0, 0, 0, 74, 0, 2122 223, 0, 0, 0, 0, 213, 0, 0, 0, 0, 2123 363, 0, 86, 0, 0, 0, 0, 356, 0, 0, 2124 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 2125 0, 0, 0, 213, 355, 0, 355, 0, 213, 0, 2126 0, 396, 0, 0, 0, 0, 0, 0, 0, 74, 2127 0, 415, 416, 0, 363, 0, 420, 0, 422, 423, 1791 49, 113, 407, 149, 453, 399, 428, 97, 150, 440, 1792 151, 267, 400, 753, 767, 401, 114, 1071, 408, 106, 1793 106, 402, 974, 280, 869, 828, 965, 403, 57, 57, 1794 505, 845, 49, 966, 1188, 50, 1172, 152, 404, 97, 1795 597, 405, 967, 147, 383, 384, 741, 610, 1070, 49, 1796 357, 106, 827, 143, 70, 920, 161, 605, 410, 96, 1797 57, 795, 177, 186, 819, 1380, 209, 50, 153, 49, 1798 193, 56, 115, 216, 923, 1303, 226, 1440, 949, 726, 1799 69, 281, 407, 731, 219, 399, 70, 820, 106, 31, 1800 31, 96, 400, 724, 57, 401, 425, 57, 408, 821, 1801 31, 402, 148, 56, 831, 113, 822, 403, 96, 162, 1802 838, 261, 69, 113, 262, 670, 266, 271, 404, 122, 1803 212, 405, 189, 194, 31, 96, 217, 31, 96, 227, 1804 816, 1138, 475, 477, 510, 679, 154, 210, 202, 817, 1805 220, 260, 1196, 683, 1304, 149, 307, 147, 1440, 818, 1806 150, 1198, 151, 166, 161, 113, 345, 548, 549, 252, 1807 209, 411, 411, 1459, 31, 986, 527, 373, 1200, 629, 1808 419, 31, 411, 633, 1170, 1171, 291, 715, 1178, 152, 1809 914, 1182, 965, 1235, 348, 186, 186, 1239, 203, 966, 1810 358, 342, 76, 161, 1078, 548, 721, 481, 967, 411, 1811 668, 266, 1197, 1469, 1179, 952, 96, 162, 832, 49, 1812 153, 1199, 835, 1201, 1187, 409, 161, 166, 123, 96, 1813 374, 209, 665, 439, 76, 149, 252, 329, 443, 1179, 1814 150, 548, 151, 852, 829, 471, 602, 855, 666, 307, 1815 1172, 836, 1030, 602, 398, 189, 162, 1017, 816, 57, 1816 327, 49, 1140, 735, 176, -233, -233, 817, 97, 271, 1817 476, 674, 676, 1081, 271, 266, 266, 818, 96, 162, 1818 106, 113, 463, 161, 1016, 442, 1004, 483, 154, 57, 1819 96, 444, 1188, 992, 500, 923, 50, 142, 924, 1249, 1820 1172, 657, 441, 1527, 307, 163, 665, 860, 861, 820, 1821 146, 610, 1094, 176, 1485, 70, 176, 307, 1205, 1206, 1822 96, 821, 666, 436, 878, 831, 597, 1250, 822, 672, 1823 1542, 597, 56, 572, 479, 677, -233, 357, 147, 730, 1824 923, 69, 567, 1399, 1400, 373, 168, 155, 1513, 377, 1825 1515, 113, 816, 327, 580, 345, 411, 476, 743, 603, 1826 621, 817, 176, 177, 1071, 378, 828, 63, 736, 163, 1827 169, 818, 1399, 1400, 626, 1139, 568, 1497, 626, 569, 1828 630, 113, 932, 1502, 634, 436, 748, 589, 737, 899, 1829 110, 144, 139, 140, 1246, 1070, 447, 96, 374, 63, 1830 987, 41, 42, 1522, 1202, 805, 266, 471, 1529, 171, 1831 769, 770, 771, 1401, 212, 460, 186, 342, 604, 1172, 1832 845, 166, 578, 373, 799, 176, 1030, 471, 579, 820, 1833 357, 583, 243, 411, 266, 471, 307, 307, 1170, 1171, 1834 266, 821, 1410, 626, 110, 1188, 1119, 854, 822, 1326, 1835 110, 715, 1188, 76, 1526, 41, 42, 684, 76, 599, 1836 1020, 41, 42, 579, 113, 435, 1120, 553, 554, 1327, 1837 1127, 348, 1363, 995, 1537, 189, 374, 358, -121, 176, 1838 -121, 1541, 266, 760, -121, 493, 176, 705, 494, 765, 1839 266, 387, 626, 706, 49, 357, 953, 373, 720, -121, 1840 -121, 97, 229, 1188, 113, 230, 923, 388, 234, 1085, 1841 236, 557, 558, 106, 911, 1245, 307, 245, 113, 1158, 1842 1160, 307, 57, 307, 307, 1136, 714, 435, 1424, 50, 1843 913, 751, 1017, 610, 870, 113, 345, 212, 882, 1105, 1844 327, 327, 1425, 1015, 1429, 1430, 559, 560, 70, 883, 1845 523, 411, 1102, 96, 1117, 176, 722, 604, 1435, 1470, 1846 880, 181, 723, 163, 348, 56, 923, 923, 110, 390, 1847 358, 342, 176, 1471, 69, 110, 176, 139, 140, 41, 1848 42, 572, 572, 555, 556, 391, 41, 42, 1127, 307, 1849 1444, 110, 201, 914, 2, 206, 4, 5, 6, 7, 1850 626, 345, 41, 42, 286, 621, 392, 1331, 327, -289, 1851 715, 603, 111, 603, 865, 41, 42, 973, 63, 997, 1852 76, 247, 393, 472, 805, 1475, 250, 327, 732, 348, 1853 1333, 626, 1475, -517, 733, 358, 626, 847, 621, 176, 1854 76, 514, 626, 1361, 229, 626, 626, 626, 76, 871, 1855 -468, 643, -468, 862, 848, 886, 1015, 411, 849, 35, 1856 394, 36, 1028, 626, 915, 266, 252, 877, 872, -468, 1857 815, 471, 604, 348, 348, 348, 395, 1142, 917, 411, 1858 916, 807, 1075, 1523, 1444, 915, 76, 442, 917, 1444, 1859 1185, 348, 263, 327, 918, 113, 37, 929, 908, 1185, 1860 40, 1082, 1317, -10, 1083, 597, 1186, 41, 42, 1444, 1861 692, 498, 805, 110, 357, 1309, 1444, 1409, 1318, 1113, 1862 1237, 626, 934, 621, 41, 42, 747, -441, 1319, 720, 1863 720, 748, 748, 43, 407, 846, 399, 561, 562, 893, 1864 599, 45, 46, 400, 1320, 748, 401, 1364, 500, 348, 1865 408, -442, 402, 895, 1035, 113, 345, 912, 403, 748, 1866 751, 751, 523, 212, 523, 276, 571, 523, 411, 404, 1867 523, 923, 405, 981, 45, 46, 519, 212, 850, 982, 1868 1277, 1278, 851, 278, 229, 472, 234, 923, 815, 604, 1869 714, 342, 965, 1154, 850, 411, 1374, 176, 1101, 966, 1870 1477, 750, 1478, 411, 572, 472, 279, -103, 967, 45, 1871 46, -103, 626, 472, 626, 110, 1000, 139, 140, 626, 1872 345, 330, 933, 603, 602, 1162, 41, 42, 994, 176, 1873 45, 46, 37, 1233, 706, 603, 40, 331, 1349, 579, 1874 348, 1357, 1350, 41, 42, 176, 332, 748, 348, 712, 1875 1358, 63, 715, 371, 358, 1524, 748, 923, 923, 176, 1876 548, 985, 982, 465, 8, 9, 10, 11, 12, 813, 1877 212, 602, 329, 411, 229, 953, 372, 45, 46, 953, 1878 953, 1360, 815, 550, 76, 307, 1365, 748, -290, 551, 1879 552, 333, 748, 31, 604, 8, 9, 10, 11, 12, 1880 807, 510, 1370, 1371, 106, 1427, 334, 626, 673, 675, 1881 76, 1424, 665, 57, 113, 345, 908, 911, 908, 335, 1882 1445, 34, 1183, 376, 31, 37, 748, 385, 666, 40, 1883 113, 715, 1157, 913, 602, 389, 41, 42, 805, 70, 1884 176, 692, 409, 934, 934, 1491, 1419, 982, 720, 714, 1885 342, 1492, 34, 113, 307, 129, 56, 130, 131, 132, 1886 48, 112, 719, 1399, 1400, 69, 41, 42, 1106, 397, 1887 45, 46, 106, 1547, 214, 1084, 426, 912, 751, 579, 1888 1159, 57, 602, 427, 1509, 1426, 772, 773, 519, 112, 1889 112, 432, 48, 519, 450, 1324, 519, 738, 1242, 739, 1890 411, 1437, 740, 48, 1088, 744, 1088, 604, -365, 48, 1891 345, 774, 775, 1228, -394, 484, 37, 48, 174, 175, 1892 40, 780, 781, 48, 1107, 214, 48, 41, 42, 48, 1893 461, 626, 626, 1127, 462, 2, 206, 4, 5, 6, 1894 7, 504, 112, 112, 776, 777, 778, 779, 291, 472, 1895 788, 307, 2, 206, 4, 5, 6, 7, 327, 348, 1896 348, 528, 529, 530, 508, 1169, 48, 442, 214, 48, 1897 106, 1495, 1437, 513, 525, 472, 48, 76, 111, 57, 1898 527, 228, 1381, 563, 564, 531, 1381, 532, 566, 533, 1899 534, 113, 252, 329, 411, 565, 908, 419, 661, 411, 1900 35, 908, 36, 569, 176, 70, 338, 48, -438, 587, 1901 934, 658, 659, 712, 846, 48, -291, 35, 266, 36, 1902 48, 590, 56, 8, 9, 10, 11, 12, -3, 214, 1903 639, 1190, 660, 626, 481, 329, 411, 662, 663, 761, 1904 664, 829, 329, 602, 766, 48, 48, 37, 667, 183, 1905 184, 40, 31, 669, 257, 912, 693, 345, 41, 42, 1906 912, 48, 694, -3, 696, 498, 698, 214, -237, 48, 1907 734, 745, 214, 1296, 1297, 1298, 692, 749, 48, 757, 1908 34, 48, 808, 1460, 906, 809, 411, -12, 112, 812, 1909 823, 714, 45, 46, 465, 1332, 1334, 1335, -13, 271, 1910 113, 867, 868, 112, 874, 907, 894, 112, 896, 897, 1911 922, 48, 112, 901, 904, 219, -415, 723, 113, 106, 1912 -521, 944, 307, 937, 946, 48, 48, 57, 57, 957, 1913 950, 959, 48, 958, 960, 951, 626, -292, 961, 48, 1914 113, 106, 63, 76, 8, 9, 10, 11, 12, 962, 1915 57, 978, 989, 212, 342, 1106, 990, 991, 214, 106, 1916 1006, 1007, 1008, 1009, 116, 879, 1010, 881, 57, 1011, 1917 210, 220, 712, 31, 1012, 1023, 70, -403, 37, -402, 1918 183, 184, 40, 1037, 1422, 626, 626, 1072, 48, 41, 1919 42, 1535, 1074, 56, 271, 1095, 907, 1096, 1059, 307, 1920 1097, 34, 69, 1098, 1104, 1114, 748, 1115, 48, 48, 1921 1116, 1107, 159, 348, 348, 185, 1118, 928, 106, 1352, 1922 1121, 1123, 57, 45, 46, 48, 972, 57, 1124, 48, 1923 1125, 1126, 113, 407, 1132, 1129, 399, 692, 1152, 214, 1924 644, 1173, 1174, 400, 173, 1175, 401, 1106, 442, 408, 1925 1176, 106, 402, 70, 1177, 1191, 48, 665, 403, 1192, 1926 57, 1194, 1195, 1203, 1210, 441, 48, 1207, 258, 404, 1927 56, 1208, 405, 666, 1215, -3, 159, 1220, 1225, 1190, 1928 1223, 214, 1241, 493, 48, 1229, 253, 1508, 1234, 266, 1929 48, 1236, 48, 1421, 1238, 1247, 1251, 1253, 1255, 110, 1930 1257, 139, 238, 1107, 1258, 626, 1263, 1259, 472, 323, 1931 41, 42, 1260, 1261, 76, 176, 1270, 37, 339, 174, 1932 175, 40, 1279, 110, 1280, 139, 140, 112, 41, 42, 1933 113, 1287, 48, 348, 41, 42, 239, 1290, 1291, 1292, 1934 48, 240, 1330, 1294, 48, 1106, 1302, 1308, 48, 106, 1935 1315, 112, 113, 112, 372, 1323, 1321, 1325, 57, 113, 1936 727, 113, 1336, 113, 1329, 728, 1337, 1193, 430, 1339, 1937 1345, 106, 434, 1346, 1347, 1348, 149, 1359, 106, 1355, 1938 57, 150, 417, 151, 1356, 1366, 1367, 57, 112, 1298, 1939 1375, 76, 1507, 112, 1384, 1376, 1377, 113, 1383, 113, 1940 1393, 1107, 323, 214, 1394, 437, 70, -404, 1397, 1408, 1941 113, 1412, 1414, 70, 712, 445, 1507, 1507, 1416, 1417, 1942 703, 1423, 1418, 56, 161, 1441, 307, 1431, 1432, 106, 1943 56, 214, 1190, 1433, 434, 1434, 214, 488, 57, 1190, 1944 1350, 1507, 1436, 112, 1446, 1448, 1450, 1452, 373, 213, 1945 48, 1454, 1456, 1458, 1463, 1465, 1486, 521, 232, 1464, 1946 1476, 48, 1488, 48, 70, 1490, 1493, 1501, 1521, 1122, 1947 159, 1494, 1516, 1517, 1530, 479, 141, 1528, 1532, 63, 1948 1538, 56, 48, 520, 1545, 176, 1546, 889, 1209, 782, 1949 1190, 1133, 1131, 712, 784, 1133, 1307, 1411, 48, 783, 1950 213, 704, 785, 112, 588, 786, 1496, 214, 594, 1548, 1951 1369, 1385, 48, 1240, 112, 48, 112, 1214, 1479, 902, 1952 903, 214, 1089, 925, 215, 1222, 1093, 627, 241, 244, 1953 327, 631, 801, 1128, 339, 1059, 1036, 939, 873, 1103, 1954 242, 1316, 717, 213, 76, 1133, 66, 117, 48, 947, 1955 791, 76, 112, 792, 112, 793, 472, 37, 112, 174, 1956 175, 40, 0, 0, 0, 0, 112, 0, 41, 42, 1957 0, 0, 0, 1285, 1286, 215, 1288, 0, 66, 48, 1958 48, 0, 0, 1293, 0, 1295, 0, 0, 0, 323, 1959 323, 0, 0, 48, 376, 160, 0, 8, 9, 10, 1960 11, 12, 76, 0, 213, 0, 0, 1483, 0, 1483, 1961 0, 0, 0, 0, 214, 221, 0, 688, 215, 0, 1962 528, 529, 530, 0, 0, 0, 31, 703, 1373, 0, 1963 116, 0, 681, 0, 0, 0, 0, 8, 9, 10, 1964 11, 12, 213, 1483, 531, 1483, 532, 213, 533, 1306, 1965 0, 259, 0, 0, 34, 488, 0, 323, 707, 488, 1966 0, 0, 499, 0, 0, 0, 31, 0, 0, 521, 1967 0, 521, 0, 48, 521, 0, 323, 521, 0, 215, 1968 1398, 0, 0, 1406, 0, 48, 0, 0, 339, 457, 1969 0, 0, 0, 328, 34, 520, 571, 0, 411, 0, 1970 520, 259, 350, 520, 45, 46, 0, 0, 704, 472, 1971 0, 0, 0, 0, 0, 0, 472, 215, 0, 0, 1972 0, 0, 215, 0, 0, 0, 1443, 0, 644, 0, 1973 0, 1447, 406, 213, 112, 0, 750, 0, 411, 0, 1974 0, 1405, 323, 0, 45, 46, 703, 424, 0, 0, 1975 429, 431, 0, 803, 0, 160, 703, 48, 0, 1468, 1976 1133, 1133, 1133, 0, 0, 0, 48, 472, 48, 0, 1977 703, 0, 0, 0, 0, 112, 448, 0, 0, 0, 1978 451, 0, 452, 0, 844, 0, 0, 0, 0, 594, 1979 0, 459, 0, 0, 0, 853, 74, 66, 48, 0, 1980 0, 0, 473, 0, 0, 0, 0, 0, 215, 0, 1981 0, 214, 480, 0, 213, 0, 0, 0, 112, 0, 1982 431, 8, 9, 10, 11, 12, 645, 704, 74, 0, 1983 0, 213, 644, 0, 0, 0, 0, 704, 0, 0, 1984 112, 0, 0, 1536, 112, 0, 0, 0, 688, 1536, 1985 31, 704, 0, 0, 0, 0, 213, 0, 0, 891, 1986 1536, 0, 892, 0, 1536, 222, 0, 0, 898, 0, 1987 0, 0, 900, 0, 0, 0, 0, 0, 34, 0, 1988 0, 37, 0, 183, 184, 40, 488, 259, 0, 215, 1989 0, 595, 41, 42, 112, 0, 0, 623, 1133, 1133, 1990 0, 0, 0, 0, 0, 0, 0, 0, 339, 0, 1991 628, 0, 0, 0, 628, 0, 0, 259, 265, 0, 1992 933, 0, 602, 0, 0, 0, 45, 46, 45, 46, 1993 0, 215, 112, 0, 0, 0, 1461, 725, 0, 729, 1994 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 1995 0, 48, 353, 535, 536, 537, 538, 539, 540, 541, 1996 542, 543, 544, 545, 473, 0, 0, 996, 48, 0, 1997 0, 0, 803, 0, 703, 703, 0, 0, 213, 350, 1998 0, 988, 0, 0, 473, 0, 0, 546, 0, 0, 1999 0, 993, 473, 0, 1510, 0, 0, 214, 0, 0, 2000 0, 0, 0, 1518, 0, 1005, 213, 0, 0, 0, 2001 699, 213, 37, 431, 183, 184, 40, 0, 0, 0, 2002 0, 0, 0, 41, 42, 0, 449, 0, 713, 0, 2003 66, 0, 703, 703, 0, 0, 0, 0, 431, 0, 2004 0, 0, 431, 0, 0, 112, 0, 74, 0, 601, 2005 0, 602, 74, 215, 0, 704, 704, 45, 46, 0, 2006 803, 0, 0, 0, 0, 0, 0, 339, 48, 0, 2007 0, 259, 350, 0, 0, 0, 0, 0, 0, 0, 2008 0, 215, 213, 688, 0, 0, 215, 0, 1080, 866, 2009 0, 0, 214, 77, 0, 0, 213, 0, 0, 0, 2010 0, 0, 0, 0, 0, 488, 1108, 323, 0, 112, 2011 112, 112, 0, 704, 704, 0, 499, 0, 794, 37, 2012 0, 183, 184, 40, 0, 77, 0, 0, 0, 0, 2013 41, 42, 0, 0, 0, 0, 628, 806, 919, 0, 2014 921, 0, 0, 0, 457, 0, 0, 222, 37, 825, 2015 183, 184, 40, 0, 0, 0, 906, 215, 411, 41, 2016 42, 0, 223, 844, 45, 46, 0, 595, 0, 0, 2017 0, 215, 595, 0, 0, 0, 0, 0, 628, 0, 2018 1313, 350, 350, 350, 0, 1506, 0, 411, 0, 213, 2019 0, 0, 0, 45, 46, 0, 0, 0, 0, 350, 2020 0, 0, 0, 124, 127, 128, 0, 0, 0, 1167, 2021 1168, 0, 703, 0, 74, 0, 0, 699, 0, 0, 2022 703, 703, 703, 0, 0, 0, 0, 0, 473, 353, 2023 0, 0, 0, 0, 74, 0, 0, 0, 48, 48, 2024 0, 1204, 74, 0, 688, 0, 0, 112, 112, 355, 2025 0, 0, 0, 0, 473, 0, 0, 350, 0, 0, 2026 353, 1314, 0, 0, 215, 0, 938, 1217, 1218, 431, 2027 0, 0, 0, 0, 0, 254, 0, 255, 353, 0, 2028 74, 0, 0, 0, 703, 112, 803, 0, 0, 0, 2029 0, 259, 713, 704, 0, 0, 0, 968, 0, 0, 2030 0, 704, 704, 704, 0, 0, 0, 0, 0, 0, 2031 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 2032 1040, 0, 353, 0, 0, 0, 0, 126, 126, 126, 2033 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 2034 0, 0, 48, 112, 77, 0, 699, 0, 350, 77, 2035 628, 0, 112, 1003, 0, 628, 806, 0, 396, 0, 2036 699, 1090, 0, 0, 0, 704, 48, 48, 415, 416, 2037 1014, 339, 0, 420, 0, 422, 423, 0, 0, 0, 2038 0, 0, 0, 0, 0, 0, 213, 353, 0, 0, 2039 0, 48, 0, 1108, 0, 0, 0, 0, 0, 126, 2040 0, 126, 0, 0, 0, 79, 0, 0, 0, 0, 2041 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 2042 0, 66, 0, 0, 0, 0, 275, 0, 0, 0, 2043 0, 353, 353, 353, 0, 0, 0, 79, 0, 0, 2044 0, 0, 0, 628, 223, 0, 0, 1338, 0, 353, 2045 259, 713, 0, 0, 1086, 1340, 1341, 1342, 0, 0, 2046 0, 215, 0, 0, 0, 0, 0, 353, 0, 0, 2047 0, 0, 0, 0, 224, 0, 0, 0, 74, 0, 2048 1100, 0, 126, 0, 0, 1108, 0, 1368, 431, 117, 2049 126, 0, 126, 126, 0, 0, 0, 126, 0, 126, 2050 126, 0, 0, 0, 74, 0, 0, 353, 0, 0, 2051 0, 77, 0, 0, 0, 0, 0, 0, 1040, 1386, 2128 2052 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2129 0, 0, 0, 0, 355, 355, 355, 0, 0, 0, 2130 0, 0, 0, 214, 0, 355, 355, 0, 0, 0, 2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 2053 0, 77, 0, 0, 0, 0, 0, 0, 0, 77, 2054 0, 0, 353, 0, 0, 0, 595, 8, 9, 10, 2055 11, 12, 0, 0, 0, 0, 0, 355, 0, 429, 2056 0, 356, 0, 0, 699, 699, 0, 350, 350, 126, 2057 0, 0, 213, 0, 0, 355, 31, 77, 0, 0, 2058 0, 0, 0, 1108, 0, 0, 353, 1189, 0, 0, 2059 0, 0, 0, 0, 0, 0, 353, 0, 353, 0, 2060 0, 0, 0, 222, 34, 0, 353, 0, 0, 37, 2061 353, 183, 184, 40, 1482, 0, 1482, 0, 0, 355, 2062 41, 42, 699, 699, 0, 0, 0, 0, 0, 0, 2063 0, 1283, 0, 0, 0, 0, 0, 0, 0, 1480, 2064 0, 1484, 0, 0, 0, 0, 601, 215, 602, 0, 2065 1482, 0, 1482, 0, 45, 46, 79, 0, 0, 0, 2066 0, 79, 0, 0, 0, 0, 0, 213, 0, 628, 2067 0, 74, 0, 0, 0, 1512, 0, 1514, 0, 323, 2068 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 2069 0, 0, 0, 713, 0, 0, 0, 0, 0, 86, 2070 0, 353, 0, 0, 0, 0, 0, 413, 0, 0, 2071 0, 0, 0, 0, 421, 0, 0, 0, 0, 1543, 2072 0, 1544, 0, 0, 0, 0, 0, 0, 355, 355, 2073 355, 86, 0, 0, 1551, 1552, 1284, 0, 0, 0, 2074 0, 0, 215, 0, 0, 0, 355, 0, 0, 0, 2075 0, 0, 796, 797, 259, 0, 224, 0, 66, 0, 2076 0, 0, 0, 0, 355, 0, 0, 0, 225, 0, 2077 699, 0, 713, 0, 0, 77, 117, 0, 0, 0, 2078 0, 830, 0, 0, 833, 834, 413, 837, 0, 839, 2079 840, 0, 0, 0, 841, 842, 0, 0, 0, 0, 2080 0, 77, 699, 0, 355, 0, 0, 0, 0, 0, 2081 699, 699, 699, 0, 353, 353, 0, 353, 353, 0, 2082 0, 350, 350, 79, 0, 0, 0, 0, 8, 9, 2083 10, 11, 12, 0, 0, 1189, 0, 74, 356, 355, 2084 0, 577, 0, 79, 0, 0, 0, 0, 0, 581, 2085 0, 79, 584, 0, 0, 363, 0, 31, 0, 0, 2086 0, 0, 0, 0, 0, 0, 0, 0, 117, 356, 2087 0, 0, 353, 353, 699, 0, 126, 126, 0, 0, 2088 0, 0, 0, 355, 0, 34, 0, 356, 0, 79, 2089 37, 0, 0, 355, 40, 355, 0, 0, 0, 0, 2090 223, 41, 42, 355, 0, 126, 0, 355, 126, 126, 2091 0, 126, 0, 126, 126, 0, 413, 0, 126, 126, 2092 421, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2093 0, 356, 970, 971, 0, 45, 46, 0, 0, 0, 2094 0, 350, 0, 353, 0, 0, 0, 0, 0, 0, 2095 86, 0, 0, 0, 0, 86, 0, 0, 0, 0, 2096 0, 0, 0, 0, 0, 0, 117, 0, 77, 0, 2097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 0, 222, 0, 1189, 0, 2099 0, 0, 0, 0, 0, 1189, 356, 413, 355, 0, 2100 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2102 353, 0, 353, 0, 0, 0, 0, 0, 0, 0, 2103 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 2104 356, 356, 356, 0, 0, 0, 1189, 0, 0, 0, 2105 225, 0, 353, 1531, 0, 0, 126, 126, 356, 0, 2106 353, 353, 353, 31, 0, 0, 0, 0, 0, 0, 2107 0, 353, 353, 0, 0, 0, 356, 0, 0, 0, 2108 0, 0, 0, 0, 0, 74, 0, 79, 0, 577, 2109 577, 34, 0, 0, 1091, 0, 37, 0, 183, 184, 2110 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2111 0, 355, 355, 79, 355, 355, 356, 86, 0, 0, 2112 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 2113 0, 0, 363, 906, 77, 411, 0, 86, 0, 0, 2114 0, 45, 46, 0, 0, 86, 0, 0, 0, 0, 2115 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 0, 363, 0, 0, 0, 0, 0, 355, 2117 355, 0, 0, 0, 0, 0, 884, 0, 0, 0, 2118 887, 363, 0, 86, 0, 0, 0, 0, 0, 0, 2119 0, 353, 0, 0, 0, 356, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 356, 0, 356, 0, 0, 2121 0, 0, 224, 126, 0, 356, 0, 0, 126, 356, 2122 0, 0, 0, 0, 0, 363, 167, 0, 172, 0, 2123 0, 178, 179, 180, 0, 182, 0, 0, 74, 0, 2124 355, 0, 0, 0, 0, 74, 0, 0, 0, 233, 2125 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 2126 0, 248, 249, 0, 8, 9, 10, 11, 12, 0, 2127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128 79, 0, 0, 223, 0, 0, 0, 0, 0, 0, 2129 363, 0, 0, 31, 0, 0, 74, 0, 0, 0, 2130 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 2131 356, 0, 577, 0, 0, 0, 0, 355, 0, 355, 2132 0, 34, 0, 0, 0, 0, 37, 0, 183, 184, 2133 40, 0, 0, 0, 363, 363, 363, 41, 42, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 2135 0, 0, 363, 0, 0, 0, 0, 355, 355, 355, 2136 0, 0, 0, 1506, 0, 411, 0, 0, 355, 355, 2137 363, 45, 46, 0, 0, 507, 0, 509, 512, 126, 2138 0, 86, 77, 0, 1305, 515, 516, 0, 0, 0, 2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140 509, 509, 0, 0, 0, 0, 0, 86, 0, 0, 2141 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142 0, 355, 0, 356, 356, 0, 356, 356, 0, 0, 2143 413, 0, 0, 0, 0, 0, 0, 0, 509, 0, 2144 0, 0, 0, 0, 0, 363, 79, 8, 9, 10, 2145 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2146 21, 22, 23, 24, 25, -293, 0, 26, 27, 28, 2147 0, 0, 0, 0, 509, 0, 31, 0, 0, 0, 2148 0, 356, 356, 0, 0, 0, 0, 0, 355, 363, 2133 2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2134 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 2135 356, 356, 0, 356, 356, 0, 0, 0, 355, 0, 2136 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 79, 1014, 0, 0, 8, 9, 10, 2138 11, 12, 0, 363, 363, 363, 0, 0, 0, 0, 2139 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 2140 0, 363, 0, 0, 282, 283, 31, 284, 356, 356, 2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2142 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2143 86, 0, 0, 285, 34, 0, 0, 213, 0, 286, 2144 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2145 41, 42, 0, 292, 293, 0, 86, 0, 0, 363, 2146 0, 0, 0, 8, 9, 10, 11, 12, 0, 0, 2147 0, 0, 77, 0, 0, 0, 294, 0, 379, 77, 2148 0, 356, 0, 0, 344, 46, 296, 297, 298, 299, 2149 0, 0, 31, 0, 363, 0, 0, 0, 0, 0, 2150 0, 363, 0, 0, 34, 0, 225, 1143, 126, 363, 2151 0, 38, 39, 363, 0, -293, 0, 592, 0, 600, 2152 0, 0, 0, 0, 1155, 0, 0, 0, 0, 0, 2153 624, 625, 0, 0, 0, 77, 0, 0, 0, 0, 2154 282, 283, 77, 284, 0, 0, 635, 0, 338, 0, 2155 0, 0, 356, 0, 45, 46, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 2157 0, 0, 0, 0, 86, 286, 0, 0, 0, 287, 2158 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2159 293, 0, 0, 77, 0, 224, 0, 0, 0, 0, 2160 0, 0, 413, 0, 363, 0, 0, 0, 0, 0, 2161 0, 0, 294, 0, 379, 0, 0, 79, 0, 0, 2162 45, 46, 296, 297, 298, 299, 0, 0, 0, 356, 2163 0, 356, 1013, 787, 0, 8, 9, 10, 11, 12, 2164 0, 0, 1243, 509, 509, 509, 509, 509, 509, 509, 2165 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2166 509, 356, 282, 283, 31, 284, 0, 0, 0, 356, 2167 356, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2168 356, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 285, 34, 0, 79, 0, 0, 286, 0, 0, 2170 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2171 0, 292, 293, 0, 0, 0, 0, 363, 363, 0, 2172 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 2173 0, 0, 0, 356, 294, 0, 379, 0, 0, 0, 2174 86, 0, 344, 46, 296, 297, 298, 299, 0, 0, 2175 1, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2176 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2177 21, 22, 23, 24, 25, 363, 363, 26, 27, 28, 2178 29, 0, 0, 30, 282, 283, 31, 284, 0, 509, 2150 2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2151 0, 0, 0, 0, 0, 0, 0, 927, 0, 928, 2152 34, 0, 0, 0, 224, 37, 931, 932, 0, 40, 2153 77, 937, 0, 0, 0, 0, 41, 42, 0, 363, 2154 0, 0, 0, 942, 0, 0, 79, 0, 946, 363, 2155 0, 363, 0, 0, 0, 0, 225, 0, 356, 363, 2156 356, 0, 719, 363, 0, 0, 0, 0, 0, 0, 2157 45, 46, 0, 0, 0, 0, 980, 0, 0, 0, 2180 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2181 0, 0, 0, 285, 34, 0, 35, 0, 36, 286, 2182 0, 38, 39, 287, 165, 0, 288, 289, 290, 291, 2183 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2184 0, 218, 0, 0, 0, 0, 363, 79, 0, 0, 2185 509, 0, 0, 0, 79, 0, 294, 0, 1056, 0, 2186 0, 0, 0, 0, 45, 46, 296, 297, 298, 299, 2187 0, 0, 0, 926, 0, 927, 0, 0, 0, -128, 2188 509, 0, 930, 931, 0, 0, 0, 936, 165, 225, 2189 0, 0, 272, 0, 0, 0, 0, 0, 0, 941, 2190 0, 0, 0, 0, 945, 79, 0, 0, 0, 0, 2191 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 2192 0, 165, 0, 363, 0, 363, 0, 0, 0, 0, 2193 0, 369, 979, 0, 0, 375, 0, 0, 0, 0, 2194 0, 0, 0, 0, 0, 0, 1163, 0, 0, 8, 2195 9, 10, 11, 12, 0, 363, 0, 0, 0, 0, 2196 0, 0, 0, 363, 363, 363, 0, 0, 0, 0, 2197 0, 0, 0, 0, 363, 363, 282, 283, 31, 284, 2198 0, 0, 0, 0, 165, 0, 0, 0, 86, 0, 2199 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 2200 509, 0, 0, 0, 0, 285, 34, 0, 0, 0, 2201 0, 286, 0, 0, 165, 287, 0, 0, 288, 289, 2202 290, 291, 41, 42, 0, 292, 293, 363, 0, 0, 2203 0, 1024, 1025, 1026, 1027, 0, 1029, 0, 0, 375, 2204 0, 0, 0, 0, 0, 509, 165, 0, 294, 0, 2205 379, 1073, 0, 0, 0, 0, 1164, 46, 296, 297, 2206 298, 299, 0, 0, 0, 1079, 0, 0, 0, 524, 2158 2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2159 356, 0, 0, 0, 0, 0, 0, 0, 356, 356, 2160 356, 0, 0, 0, 0, 0, 0, 0, 0, 356, 2161 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 79, 86, 0, 0, 0, 0, 0, 2163 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2164 0, 0, 1166, 0, 0, 8, 9, 10, 11, 12, 2165 0, 0, 0, 0, 363, 797, 798, 0, 0, 0, 2166 0, 0, 356, 0, 0, 0, 0, 0, 165, 0, 2167 0, 0, 282, 283, 31, 284, 1025, 1026, 1027, 1028, 2168 0, 1030, 0, 0, 831, 218, 0, 834, 835, 0, 2169 838, 0, 840, 841, 0, 0, 1074, 842, 843, 0, 2170 0, 285, 34, 0, 0, 0, 0, 286, 0, 0, 2171 1080, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2172 0, 292, 293, 0, 0, 0, 0, 0, 0, 356, 2173 0, 0, 165, 0, 0, 0, 272, 0, 0, 0, 2174 0, 0, 0, 0, 294, 0, 379, 0, 0, 0, 2175 1100, 0, 1167, 46, 296, 297, 298, 299, 0, 0, 2176 0, 0, 0, 0, 0, 165, 0, 363, 363, 0, 2177 363, 363, 0, 0, 0, 369, 79, 0, 0, 375, 2178 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 2179 86, 0, 0, 0, 0, 1131, 0, 0, 0, 0, 2180 0, 1140, 0, 0, 0, 0, 1144, 0, 0, 0, 2181 0, 1148, 0, 1149, 0, 0, 0, 1151, 0, 1152, 2182 1153, 0, 213, 1156, 0, 363, 363, 0, 165, 0, 2183 0, 0, 1168, 0, 79, 971, 972, 0, 0, 0, 2184 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2185 1183, 1184, 0, 0, 0, 0, 0, 0, 165, 8, 2186 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2187 19, 20, 21, 22, 23, 24, 25, 1214, 0, 0, 2188 1216, 0, 0, 375, 0, 0, 0, 0, 31, 0, 2189 165, 0, 0, 0, 0, 0, 0, 0, 363, 0, 2190 0, 0, 126, 126, 126, 0, 0, 0, 0, 0, 2191 0, 0, 0, 524, 0, 0, 34, 213, 0, 0, 2192 0, 0, 0, 1230, 0, 0, 165, 0, 0, 1234, 2193 1235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 0, 225, 0, 0, 0, 0, 0, 0, 0, 1251, 2195 0, 0, 0, 1253, 0, 0, 0, 0, 1257, 0, 2196 0, 0, 0, 86, 598, 0, 0, 0, 0, 622, 2197 0, 1265, 0, 0, 126, 363, 126, 363, 0, 0, 2198 0, 0, 0, 0, 1272, 0, 1274, 1275, 1276, 1277, 2199 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 2200 0, 275, 1284, 0, 1285, 0, 0, 363, 172, 0, 2201 0, 0, 0, 0, 0, 363, 363, 363, 0, 0, 2202 0, 0, 0, 0, 0, 0, 363, 363, 0, 0, 2203 211, 0, 0, 0, 0, 0, 0, 1313, 1314, 231, 2204 86, 235, 0, 237, 0, 165, 165, 0, 0, 0, 2205 246, 0, 369, 0, 0, 0, 0, 126, 0, 0, 2206 0, 0, 0, 0, 0, 126, 0, 126, 126, 0, 2207 0, 0, 126, 524, 126, 126, 0, 0, 0, 363, 2208 0, 211, 0, 235, 237, 246, 0, 1346, 1347, 0, 2209 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 2210 0, 716, 0, 0, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 2212 0, 0, 0, 0, 211, 524, 0, 524, 0, 0, 2213 524, 0, 165, 524, 0, 0, 0, 0, 0, 0, 2214 0, 0, 0, 0, 126, 369, 363, 0, 0, 0, 2215 0, 0, 0, 0, 0, 0, 0, 0, 1392, 1222, 2216 1393, 1394, 1395, 0, 0, 0, 0, 0, 0, 0, 2217 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 2218 0, 1410, 0, 0, 0, 211, 0, 235, 237, 246, 2219 0, 0, 0, 86, 0, 0, 0, 0, 165, 0, 2220 86, 0, 0, 0, 0, 0, 1431, 0, 0, 0, 2221 369, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2222 0, 0, 0, 211, 0, 0, 0, 0, 211, 0, 2223 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 2224 598, 0, 0, 497, 0, 598, 0, 0, 0, 1469, 2225 1470, 86, 0, 0, 369, 369, 369, 0, 0, 0, 2226 0, 0, 1475, 0, 0, 0, 0, 0, 0, 1475, 2227 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 2228 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 2229 1308, 256, 211, 0, 0, 0, 0, 0, 0, 0, 2230 0, 1508, 0, 0, 524, 1514, 0, 0, 0, 0, 2231 0, 0, 0, 0, 211, 0, 0, 0, 0, 235, 2232 237, 0, 0, 0, 0, 0, 0, 246, 0, 0, 2233 369, 0, 936, 1536, 0, 1537, 0, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 2208 509, 0, 165, 0, 0, 0, 0, 0, 0, 211, 2209 0, 0, 0, 509, 363, 0, 0, 0, 231, 0, 2210 235, 0, 237, 0, 0, 1099, 0, 0, 0, 246, 2235 2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 0, 386, 0, 1552, 1553, 716, 0, 0, 0, 0, 2237 211, 1556, 1557, 0, 0, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 418, 0, 0, 0, 211, 282, 2239 283, 0, 284, 211, 0, 211, 0, 0, 433, 0, 2240 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 2241 0, 0, 211, 0, 0, 211, 211, 446, 285, 0, 2242 0, 0, 369, 211, 286, 0, 622, 0, 287, 0, 2243 369, 288, 289, 290, 291, 41, 42, 211, 292, 293, 2244 0, 0, 464, 0, 211, 0, 0, 474, 0, 0, 2245 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, 2246 482, 294, 0, 379, 0, 0, 492, 0, 496, 45, 2247 46, 296, 297, 298, 299, 0, 0, 0, 0, 0, 2248 126, 0, 788, 126, 126, 526, 126, 0, 126, 126, 2249 0, 0, 0, 126, 126, 8, 9, 10, 11, 12, 2212 598, 0, 0, 0, 0, 622, 0, 0, 0, 0, 2213 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 2214 211, 86, 235, 237, 246, 0, 0, 0, 86, 0, 2215 1130, 0, 0, 0, 0, 0, 1137, 0, 0, 0, 2216 0, 1141, 0, 0, 0, 0, 1145, 0, 1146, 0, 2217 0, 0, 1148, 0, 1149, 1150, 0, 0, 1153, 0, 2218 0, 0, 0, 211, 0, 0, 0, 1165, 0, 0, 2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 2220 0, 165, 165, 0, 0, 1180, 1181, 0, 369, 0, 2221 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 524, 2223 0, 0, 1211, 0, 0, 1213, 0, 0, 0, 0, 2224 0, 0, 0, 0, 211, 0, 235, 237, 246, 0, 2225 0, 0, 0, 0, 0, 0, 0, 716, 0, 0, 2226 0, 8, 9, 10, 11, 12, 0, 0, 0, 165, 2227 0, 509, 509, 0, 0, 0, 0, 0, 1227, 0, 2228 0, 524, 211, 524, 1231, 1232, 524, 211, 165, 524, 2229 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2230 0, 369, 497, 0, 1248, 0, 0, 1252, 0, 0, 2231 0, 1254, 0, 0, 0, 0, 0, 0, 34, 0, 2232 0, 0, 0, 37, 1262, 183, 184, 40, 0, 0, 2233 0, 0, 0, 0, 41, 42, 0, 1269, 0, 1271, 2234 1272, 1273, 1274, 0, 0, 0, 0, 0, 0, 0, 2235 0, 211, 0, 0, 165, 1281, 0, 1282, 0, 0, 2236 185, 172, 0, 0, 0, 0, 369, 0, 45, 46, 2237 811, 0, 0, 211, 0, 0, 0, 0, 235, 237, 2238 0, 0, 0, 0, 0, 0, 246, 0, 0, 0, 2239 1310, 1311, 0, 0, 0, 0, 598, 0, 0, 0, 2240 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 2241 369, 369, 369, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 0, 0, 0, 0, 0, 0, 369, 211, 2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2244 1343, 1344, 0, 0, 0, 0, 0, 211, 0, 0, 2245 1354, 0, 211, 0, 211, 0, 0, 0, 0, 0, 2246 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2247 0, 211, 0, 0, 211, 211, 509, 0, 0, 0, 2248 0, 0, 211, 0, 0, 0, 369, 0, 935, 0, 2249 0, 0, 509, 0, 0, 0, 211, 0, 0, 0, 2250 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 2251 0, 1389, 0, 1390, 1391, 1392, 0, 0, 0, 0, 2252 0, 716, 0, 0, 0, 1396, 156, 0, 0, 0, 2253 0, 0, 0, 0, 1407, 8, 9, 10, 11, 12, 2250 2254 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2251 23, 24, 25, -296, 0, 0, 0, 0, 0, 0, 2252 0, 0, 0, 0, 31, 716, 0, 0, 586, 0, 2253 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 2254 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2255 0, 0, 34, 0, 0, 0, 0, 0, 0, 211, 2256 0, 0, 636, -296, 165, 0, 637, 638, 0, 640, 2257 0, 0, 0, 0, 0, 0, 651, 652, 0, 653, 2258 654, 0, 655, 0, 656, 0, 0, 211, 0, 0, 2259 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 2260 0, 586, 0, 0, 282, 283, 0, 284, 0, 671, 2255 23, 24, 25, 0, 0, 26, 27, 28, 0, 1428, 2256 0, 0, 509, 509, 31, 0, 0, 8, 9, 10, 2257 11, 12, 0, 251, 0, 0, 0, 369, 0, 0, 2258 0, 622, 0, 256, 0, 369, 0, 0, 0, 0, 2259 0, 0, 34, 0, 0, 0, 31, 37, 0, 38, 2260 39, 40, 1466, 1467, 0, 0, 0, 0, 41, 42, 2261 0, 0, 0, 0, 0, 1472, 0, 0, 211, 0, 2262 0, 0, 1472, 0, 34, 0, 0, 0, 0, 37, 2263 0, 183, 184, 40, 43, 0, 157, 0, 0, 156, 2264 41, 42, 45, 46, 0, 0, 211, 0, 0, 0, 2265 0, 211, 0, 386, 1505, 0, 0, 0, 1511, 0, 2266 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, 2267 0, 0, 0, 0, 45, 46, 418, 0, 0, 0, 2268 716, 0, 0, 0, 0, 0, 1533, 0, 1534, 0, 2269 433, 0, 0, 0, 0, 524, 0, 0, 0, 438, 2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 2271 0, 0, 0, 0, 0, 0, 1549, 1550, 0, 165, 2272 0, 0, 211, 0, 1553, 1554, 0, 0, 0, 0, 2273 0, 0, 0, 0, 464, 0, 211, 0, 0, 474, 2261 2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2262 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2263 0, 126, 126, 285, 682, 0, 0, 0, 0, 286, 2264 0, 369, 369, 287, 0, 0, 288, 289, 290, 291, 2265 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2266 708, 0, 0, 211, 0, 0, 711, 0, 0, 0, 2267 0, 464, 0, 0, 0, 0, 294, 211, 379, 0, 2268 0, 380, 0, 0, 45, 46, 296, 297, 298, 299, 2269 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, 2270 0, 524, 0, 0, 0, 0, 0, 746, 0, 0, 2275 0, 0, 482, 0, 0, 0, 497, 0, 492, 0, 2276 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2277 0, 0, 0, 0, 0, 598, 0, 526, 8, 9, 2278 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2279 20, 21, 22, 23, 24, 25, 369, 369, 26, 27, 2280 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2281 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 2282 586, 0, 0, 0, 0, 591, 0, 0, 0, 211, 2283 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2284 37, 0, 38, 39, 40, 0, 0, 0, 211, 0, 2285 0, 41, 42, 0, 636, 0, 524, 0, 637, 638, 2286 0, 640, 0, 0, 0, 0, 0, 0, 651, 652, 2287 0, 653, 654, 0, 655, 0, 656, 43, 0, 44, 2288 0, 0, 0, 0, 0, 45, 46, 0, 0, 0, 2289 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 2290 0, 671, 0, 0, 0, 0, 0, 0, 0, 341, 2291 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2292 0, 0, 716, 0, 0, 0, 682, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2294 12, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2295 414, 0, 708, 0, 0, 0, 0, 0, 711, 0, 2296 0, 211, 0, 464, 218, 31, 8, 9, 10, 11, 2297 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2298 22, 23, 24, 25, -293, 0, 26, 27, 28, 0, 2299 0, 211, 0, 34, 0, 31, 0, 0, 37, 746, 2300 0, 716, 40, 0, 0, 0, 0, 0, 0, 41, 2301 42, 0, 0, 0, 764, 0, 0, 0, 0, 0, 2302 0, 0, 414, 34, 0, 0, 211, 0, 37, 0, 2303 336, 337, 40, 0, -293, 719, 0, 211, 0, 41, 2304 42, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2305 369, 369, 0, 790, 0, 0, 0, 0, 0, 218, 2306 0, 0, 800, 0, 0, 635, 0, 338, 321, 802, 2307 0, 0, 0, 45, 46, 810, 0, 414, 346, 0, 2308 0, 0, 0, 0, 824, 414, 582, 0, 414, 585, 2309 382, 382, 0, 0, 0, 0, 0, 0, 0, 364, 2310 0, 0, 0, 614, 0, 0, 0, 0, 0, 211, 2271 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2272 0, 0, 764, 0, -519, 0, 0, 1, 2, 3, 2312 0, 0, 632, 211, 864, 341, 205, 2, 206, 4, 2313 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2314 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2315 25, 0, 414, 26, 27, 28, 414, 0, 0, 0, 2316 810, 321, 31, 0, 0, 0, 0, 0, 905, 0, 2317 369, 0, 282, 283, 0, 284, 0, 0, 0, 0, 2318 0, 0, 0, 0, 0, 478, 0, 364, 0, 0, 2319 34, 0, 35, 0, 36, 0, 0, 207, 39, 251, 2320 0, 285, 0, 0, 0, 0, 0, 286, 0, 942, 2321 943, 287, 211, 0, 288, 289, 290, 291, 41, 42, 2322 0, 292, 293, 0, 0, 0, 524, 0, 524, 0, 2323 0, 0, 0, 414, 208, 0, 364, 0, 0, 0, 2324 45, 46, 980, 0, 294, 0, 379, 984, 0, 380, 2325 0, 0, 45, 46, 296, 297, 298, 299, 0, 0, 2326 0, 0, 524, 0, 524, 0, 0, 0, 0, 0, 2327 0, 0, 0, 0, 0, 414, 0, 0, 0, 341, 2328 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 2330 0, 0, 382, 0, 0, 0, 0, 211, 0, 0, 2331 0, 1018, 0, 0, 0, 0, 0, 0, 1019, 0, 2332 0, 0, 0, 0, 0, 414, 414, 0, 0, 0, 2333 0, 1021, 0, 1022, 0, 0, 0, 0, 0, 0, 2334 0, 0, 0, 0, 804, 364, 0, 1034, 0, 0, 2335 0, 0, 0, 1038, 0, 614, 0, 614, 614, 0, 2336 0, 0, 0, 0, 614, 1076, 0, 0, 1077, 0, 2337 0, 0, 0, 0, 843, 364, 0, 0, 0, 0, 2338 364, 0, 0, 0, 0, 0, 0, 0, 0, 364, 2339 364, 364, 0, 0, 0, 0, 710, 0, 0, 0, 2340 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2341 0, 0, 414, 885, 0, 0, 414, 888, 0, 0, 2342 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 2343 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 2344 0, 0, 414, 0, 0, 591, 0, 0, 759, 0, 2345 0, 0, 0, 742, 0, 0, 742, 0, 0, 0, 2346 0, 0, 0, 0, 0, 364, 614, 0, 0, 768, 2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2348 1147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2349 0, 789, 0, 0, 0, 0, 0, 0, 0, 341, 2350 364, 798, 0, 0, 414, 414, 0, 0, 346, 0, 2351 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 2352 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2353 18, 19, 20, 21, 22, 23, 24, 25, 526, 0, 2354 26, 27, 28, 0, 1212, 0, 0, 0, 414, 31, 2355 0, 0, 0, 0, 211, 0, 364, 0, 0, 0, 2356 0, 0, 863, 804, 364, 0, 0, 614, 0, 614, 2357 382, 0, 0, 0, 0, 0, 0, 34, 1224, 614, 2358 0, 0, 37, 1226, 207, 39, 40, 0, 0, 0, 2359 0, 1230, 0, 41, 42, 0, 8, 9, 10, 11, 2360 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2361 22, 23, 24, 25, -293, 0, 0, 0, 0, 43, 2362 0, 270, 0, 0, 1256, 31, 0, 45, 46, 0, 2363 0, 0, 0, 0, 0, 0, 1264, 0, 0, 1265, 2364 0, 1266, 0, 0, 0, 0, 0, 0, 0, 0, 2365 0, 804, 0, 34, 0, 1275, 1276, 0, 341, 364, 2366 414, 0, 414, 0, -293, 0, 414, 0, 759, 0, 2367 964, 0, 0, 0, 0, 0, 0, 1289, 0, 0, 2368 975, 0, 0, 0, 0, 0, 983, 614, 614, 0, 2369 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2370 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2371 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2372 0, 0, 414, 0, 1328, 0, 0, 0, 1001, 1002, 2373 0, 0, 346, 0, 0, 0, 0, 0, 282, 283, 2374 0, 284, 0, 414, 1144, 0, 346, 34, 0, 0, 2375 0, 0, 0, 0, 364, 0, 0, 0, -294, 0, 2376 414, 1156, 0, 614, 614, 1161, 0, 285, 0, 0, 2377 0, 0, 0, 286, 0, 364, 364, 287, 0, 0, 2378 288, 289, 290, 291, 41, 42, 1032, 292, 293, 0, 2379 382, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 2380 0, 1379, 0, 0, 0, 0, 0, 0, 0, 0, 2381 294, 0, 379, 1387, 0, 1388, 0, 758, 45, 46, 2382 296, 297, 298, 299, 0, 0, 0, 346, 0, 0, 2383 0, 0, 1395, 0, 0, 0, 0, 0, 414, 0, 2384 414, 0, 0, 0, 0, 414, 0, 0, 1413, 1415, 2385 0, 0, 0, 0, 614, 0, 0, 0, 0, 1420, 2386 0, 0, 1230, 0, 0, 0, 321, 0, 0, 0, 2387 0, 0, 0, 0, 0, 0, 0, 804, 414, 1244, 2388 0, 0, 0, 1442, 0, 0, 0, 0, 0, 0, 2389 0, 0, 1449, 0, 382, 1451, 0, 1453, 1455, 1457, 2390 975, 364, 0, 0, 742, 282, 283, 0, 284, 0, 2391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2392 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 2393 0, 0, 0, 0, 285, 0, 1166, 1487, 0, 1489, 2394 641, 1230, 139, 140, 287, 0, 0, 288, 289, 290, 2395 291, 41, 42, 0, 292, 293, 1500, 0, 382, 0, 2396 1184, 0, 341, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 975, 975, 294, 0, 642, 2398 364, 643, 380, 0, 0, 45, 46, 296, 297, 298, 2399 299, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 2400 0, 0, 0, 0, 1, 2, 206, 4, 5, 6, 2401 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2402 17, 18, 19, 20, 21, 22, 23, 24, 25, 364, 2403 364, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2404 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405 0, 975, 0, 0, 0, 0, 0, 0, 0, 0, 2406 0, 0, 0, 0, 0, 0, 0, 0, 34, 863, 2407 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 2408 0, 0, 0, 0, 1267, 1268, 0, 1, 2, 206, 2273 2409 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2274 2410 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2275 24, 25, 0, 0, 26, 27, 28, 29, 0, 211, 2276 30, 791, 0, 31, 32, 0, 0, 0, 0, 716, 2277 801, 211, 0, 0, 0, 0, 0, 803, 0, 0, 2278 0, 0, 0, 811, 0, 0, 0, 0, 33, 126, 2279 211, 34, 825, 35, 126, 36, 37, 0, 38, 39, 2280 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2281 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 2282 0, 0, 0, 0, 0, 341, 364, 0, 0, 0, 2283 0, 0, 865, 43, 0, 44, 0, 0, 0, 0, 2284 0, 45, 46, 0, 0, 0, 0, 0, 716, 0, 2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 2286 0, 0, 0, 0, 0, 0, 414, 0, 811, 0, 2287 0, 0, 0, 0, 0, 0, 906, 0, 0, 8, 2288 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2289 19, 20, 21, 22, 23, 24, 25, 369, 369, 26, 2290 27, 28, 0, 211, 0, 0, 218, 251, 31, 0, 2291 0, 0, 0, 0, 0, 0, 0, 943, 944, 0, 2411 24, 25, 44, 0, 26, 27, 28, 29, 45, 46, 2412 30, 282, 283, 31, 1041, 1042, 0, 1043, 0, 0, 2413 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 2414 0, 1052, 0, 0, 0, 1053, 1054, 0, 33, 364, 2415 285, 34, 0, 35, 0, 36, 1055, 0, 38, 39, 2416 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2417 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2292 2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 211, 0, 0, 34, 0, 414, 0, 2294 0, 37, 0, 38, 39, 40, 0, 0, 0, 0, 2295 981, 0, 41, 42, 0, 126, 985, 0, 0, 0, 2296 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 2297 0, 0, 0, 0, 0, 0, 0, 0, 43, 211, 2298 157, 0, 0, 0, 0, 0, 45, 46, 0, 0, 2299 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2300 0, 414, 582, 0, 414, 585, 0, 0, 0, 0, 2301 0, 0, 0, 0, 0, 364, 0, 369, 0, 614, 2302 1019, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 2303 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 2304 1022, 341, 1023, 0, 0, 0, 0, 0, 0, 0, 2305 0, 211, 0, 0, 0, 0, 1035, 0, 0, 0, 2306 0, 0, 1039, 0, 0, 211, 0, 0, 414, 0, 2307 0, 0, 414, 524, 1077, 524, 0, 1078, 0, 0, 2308 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 2419 0, 0, 0, 294, 0, 1056, 0, 0, 171, 0, 2420 0, 45, 46, 296, 297, 298, 299, 0, 0, 0, 2421 0, 1057, 0, 0, 0, 0, -128, 0, 0, 0, 2422 0, 0, 0, 0, 0, 1372, 0, 0, 742, 0, 2423 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 2309 2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 0, 0, 364, 0, 0, 0, 0, 0, 524,2311 0, 524, 0, 0, 0, 0, 0, 0, 0, 0,2312 0, 0, 507, 0, 509, 512, 0, 0, 0, 0,2313 0, 0, 515, 516, 0, 0, 0, 0, 165, 0,2314 0, 0, 0, 0, 0, 0, 0, 509, 509, 414,2315 0, 0, 364, 0, 591, 0, 211, 0, 0, 0,2316 0, 8, 9, 10, 11, 12, 13, 14, 15, 16,2317 17, 18, 19, 20, 21, 22, 23, 24, 25, -296,2318 0, 26, 27, 28, 0, 509, 0, 0, 0, 1150,2319 31, 414, 0, 0, 0, 341, 364, 0, 0, 0,2320 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2322 0, 509, 0, 37, 0, 336, 337, 40, 0, -296, 2323 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2324 0, 414, 414, 0, 0, 0, 0, 526, 0, 0, 2325 0, 211, 0, 1215, 0, 0, 321, 0, 0, 0, 2326 805, 364, 338, 0, 0, 0, 346, 0, 45, 46, 2327 0, 614, 0, 614, 614, 0, 0, 0, 382, 382, 2328 614, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 2329 844, 364, 1229, 0, 0, 0, 364, 0, 0, 0, 2330 1233, 0, 0, 0, 0, 364, 364, 364, 0, 0, 2426 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 2331 2427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2332 0, 0, 0, 364, 0, 0, 0, 0, 414, 886, 2333 0, 0, 414, 889, 0, 1259, 0, 0, 0, 891, 2334 0, 0, 0, 0, 0, 0, 0, 1267, 0, 321, 2335 1268, 0, 1269, 0, 0, 0, 0, 0, 414, 0, 2336 0, 0, 0, 0, 0, 0, 1278, 1279, 0, 0, 2337 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 2338 0, 364, 614, 0, 0, 0, 0, 0, 1292, 0, 2339 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2340 509, 509, 509, 509, 509, 509, 509, 509, 0, 0, 2341 0, 0, 0, 0, 0, 341, 364, 0, 0, 0, 2342 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 2343 0, 0, 0, 0, 0, 1331, 0, 0, 0, 0, 2344 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2345 18, 19, 20, 21, 22, 23, 24, 25, -296, 0, 2346 26, 27, 28, 0, 0, 414, 0, 0, 0, 31, 2347 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 2348 805, 364, 0, 0, 614, 0, 614, 0, 0, 0, 2349 382, 0, 0, 0, 0, 0, 614, 34, 211, 0, 2350 0, 0, 37, 0, 336, 337, 40, 0, -296, 0, 2351 1381, 0, 1382, 41, 42, 0, 0, 0, 0, 0, 2352 0, 0, 0, 0, 0, 0, 1390, 0, 1391, 0, 2353 0, 0, 0, 0, 0, 0, 509, 0, 0, 635, 2354 0, 338, 0, 1398, 0, 0, 0, 45, 46, 0, 2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 1416, 2356 1418, 0, 0, 0, 0, 0, 0, 0, 805, 0, 2357 1423, 0, 0, 1233, 0, 341, 364, 414, 0, 414, 2358 0, 0, 0, 414, 710, 0, 0, 0, 0, 0, 2359 0, 0, 0, 0, 1445, 0, 0, 509, 0, 0, 2360 0, 0, 0, 1452, 614, 614, 1454, 0, 1456, 1458, 2361 1460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2362 0, 0, 0, 742, 0, 0, 0, 0, 509, 0, 2363 0, 0, 0, 0, 0, 0, 759, 0, 0, 414, 2364 0, 742, 0, 0, 742, 0, 0, 0, 1490, 0, 2365 1492, 0, 1233, 0, 0, 0, 0, 769, 0, 0, 2366 414, 1147, 0, 0, 0, 0, 0, 1503, 0, 0, 2367 0, 364, 0, 0, 0, 0, 0, 414, 1159, 790, 2368 614, 614, 1164, 0, 0, 0, 0, 0, 0, 799, 2369 0, 0, 364, 364, 0, 0, 346, 0, 0, 0, 2370 0, 759, 0, 0, 1, 2, 3, 4, 5, 6, 2428 0, 0, 0, 0, 0, 414, 1, 2, 206, 4, 2429 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2430 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2431 25, 0, 0, 26, 27, 28, 29, 0, 0, 30, 2432 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 2433 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2434 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 2435 34, 0, 35, 31, 36, 286, 0, 38, 39, 287, 2436 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2437 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 0, 34, 0, 0, 0, 0, 110, 0, 38, 39, 2439 0, 0, 294, 0, 44, 0, 0, 41, 42, 0, 2440 45, 46, 296, 297, 298, 299, 2, 206, 4, 5, 2441 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2442 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2443 0, 0, 26, 27, 28, 0, 0, 0, 321, 282, 2444 283, 31, 284, 8, 9, 10, 11, 12, 13, 14, 2445 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2446 25, 0, 0, 26, 27, 28, 0, 0, 285, 34, 2447 0, 35, 31, 36, 286, 0, 38, 39, 287, 0, 2448 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2450 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2451 0, 294, 0, 343, 0, 0, 0, 0, 758, 344, 2452 46, 296, 297, 298, 299, 2, 206, 4, 5, 6, 2371 2453 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2372 2454 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2373 0, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2374 31, 32, 0, 0, 0, 0, 0, 0, 509, 0, 2375 864, 0, 0, 0, 0, 414, 0, 414, 382, 0, 2376 0, 0, 414, 0, 0, 33, 0, 0, 34, 0, 2377 35, 614, 36, 37, 0, 38, 39, 40, 0, 0, 2378 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2379 0, 0, 0, 509, 805, 414, 1247, 0, 0, 0, 2380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2381 43, 0, 44, 0, 0, 0, -523, 0, 45, 46, 2382 364, 0, 0, 0, 0, 0, 0, 0, 509, 0, 2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 0, 509, 0, 0, 0, 0, 0, 0, 282, 283, 2385 0, 284, 0, 0, 0, 0, 759, 0, 965, 0, 2386 0, 0, 0, 0, 0, 0, 0, 0, 976, 0, 2387 0, 0, 0, 0, 984, 0, 0, 285, 0, 0, 2388 0, 341, 509, 641, 0, 139, 140, 287, 0, 0, 2389 288, 289, 290, 291, 41, 42, 0, 292, 293, 364, 2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 0, 1002, 1003, 0, 2392 294, 346, 642, 0, 643, 380, 0, 0, 45, 46, 2393 296, 297, 298, 299, 0, 346, 0, 0, 0, 0, 2394 0, 0, 0, 0, 0, 0, 0, 0, 364, 364, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 509, 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 1033, 0, 0, 0, 382, 2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2399 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2400 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2401 21, 22, 23, 24, 25, 0, 346, 26, 27, 28, 2402 29, 509, 509, 30, 0, 0, 31, 32, 0, 0, 2403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405 0, 33, 0, 0, 34, 321, 35, 0, 36, 37, 2406 0, 38, 39, 40, 0, 0, 0, 0, 364, 0, 2407 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 0, 382, 0, 0, 0, 282, 283, 976, 2409 284, 0, 0, 742, 0, 0, 43, 0, 44, 0, 2410 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2411 0, 0, 0, 0, 1154, 0, 285, 0, 0, 0, 2412 0, 0, 286, 0, 0, 1169, 287, 0, 0, 288, 2413 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2414 0, 0, 0, 0, 0, 0, 0, 382, 0, 1187, 2415 0, 0, 0, 282, 283, 414, 284, 0, 0, 294, 2416 0, 379, 0, 0, 976, 976, 758, 45, 46, 296, 2417 297, 298, 299, 0, 0, 0, 0, 0, 0, 414, 2418 414, 0, 285, 0, 0, 1219, 0, 0, 286, 0, 2419 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2420 42, 0, 292, 293, 414, 0, 0, 0, 0, 0, 2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 294, 509, 379, 0, 0, 2423 973, 0, 0, 45, 46, 296, 297, 298, 299, 0, 2424 976, 0, 509, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2426 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 0, 1270, 1271, 0, 0, 0, 2428 0, 1, 2, 206, 4, 5, 6, 7, 8, 9, 2429 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2430 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2431 28, 29, 509, 509, 30, 282, 283, 31, 1042, 1043, 2432 0, 1044, 0, 0, 1045, 1046, 1047, 1048, 1049, 1050, 2433 1051, 1052, 0, 0, 0, 1053, 0, 0, 0, 1054, 2434 1055, 0, 33, 0, 285, 34, 0, 35, 0, 36, 2435 1056, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2436 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 0, 0, 0, 0, 0, 0, 0, 294, 0, 1057, 2439 0, 0, 171, 0, 0, 45, 46, 296, 297, 298, 2440 299, 0, 0, 0, 0, 1058, 0, 0, 0, 0, 2441 -131, 0, 0, 0, 0, 0, 1375, 0, 0, 742, 2442 1, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2443 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2444 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2445 29, 0, 0, 30, 282, 283, 31, 284, 8, 9, 2446 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2447 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2448 28, 0, 0, 285, 34, 0, 35, 31, 36, 286, 2449 0, 38, 39, 287, 0, 0, 288, 289, 290, 291, 2450 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2451 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2452 110, 0, 38, 39, 0, 0, 294, 0, 1057, 0, 2453 0, 41, 42, 0, 45, 46, 296, 297, 298, 299, 2454 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 2455 0, 0, 0, 0, 1, 2, 206, 4, 5, 6, 2456 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2457 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2458 0, 26, 27, 28, 29, 0, 0, 30, 282, 283, 2459 31, 284, 0, 0, 0, 8, 9, 10, 11, 12, 2460 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2461 23, 24, 25, -297, 0, 0, 0, 285, 34, 0, 2462 35, 0, 36, 286, 31, 38, 39, 287, 0, 321, 2455 0, 26, 27, 28, 0, 0, 0, 0, 282, 283, 2456 31, 284, 8, 9, 10, 11, 12, 13, 14, 15, 2457 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2458 0, 0, 26, 27, 28, 0, 0, 285, 34, 0, 2459 35, 31, 36, 286, 0, 38, 39, 287, 0, 0, 2463 2460 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2465 0, 0, 34, 0, 0, 0, 0, 0, 0, 0,2466 294, 0, 44, -297, 0, 0, 0, 0, 45, 46,2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2462 0, 0, 0, 0, 0, 0, 207, 39, 0, 0, 2463 294, 0, 963, 0, 0, 0, 0, 758, 344, 46, 2467 2464 296, 297, 298, 299, 2, 206, 4, 5, 6, 7, 2468 2465 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … … 2471 2468 284, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2472 2469 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2473 0, 26, 27, 28, 0, 0, 285, 34, 0, 35,2470 0, 0, 0, 0, 0, 0, 285, 34, 0, 35, 2474 2471 31, 36, 286, 0, 38, 39, 287, 0, 0, 288, 2475 2472 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2476 2473 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2477 0, 0, 0, 0, 0, 38, 39, 0, 0, 294,2478 0, 343, 0, 0, 0, 0, 758, 344, 46, 296,2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2475 0, 963, 0, 0, 0, 0, 758, 45, 46, 296, 2479 2476 297, 298, 299, 2, 206, 4, 5, 6, 7, 8, 2480 2477 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2481 2478 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2482 2479 27, 28, 0, 0, 0, 0, 282, 283, 31, 284, 2483 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,2484 18, 19, 20, 21, 22, 23, 24, 25, 0, 0,2485 26, 27, 28, 0, 0, 285, 34, 0, 35, 31,2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482 0, 0, 0, 0, 0, 285, 34, 0, 35, 0, 2486 2483 36, 286, 0, 38, 39, 287, 0, 0, 288, 289, 2487 2484 290, 291, 41, 42, 0, 292, 293, 0, 0, 0, 2488 0, 0, 0, 0, 0, 0, 0, 34, 0, 0,2489 0, 0, 0, 0, 207, 39, 0, 0, 294, 0,2490 964, 0, 0, 0, 0, 758, 344, 46, 296, 297,2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2486 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2487 343, 0, 0, 0, 0, 0, 344, 46, 296, 297, 2491 2488 298, 299, 2, 206, 4, 5, 6, 7, 8, 9, 2492 2489 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 2496 2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2497 2494 0, 0, 0, 0, 285, 34, 0, 35, 0, 36, 2498 286, 0, 38, 39, 287, 0, 0, 288, 289, 290,2495 286, 0, 207, 39, 287, 0, 0, 288, 289, 290, 2499 2496 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2500 2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 294, 0, 9 64,2502 0, 0, 0, 0, 758, 45, 46, 296, 297, 298,2498 0, 0, 0, 0, 0, 0, 0, 294, 0, 998, 2499 0, 0, 0, 0, 0, 999, 46, 296, 297, 298, 2503 2500 299, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2504 2501 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, … … 2511 2508 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2512 2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2513 0, 0, 0, 0, 0, 0, 294, 0, 343, 0,2510 0, 0, 0, 0, 0, 0, 294, 0, 963, 0, 2514 2511 0, 0, 0, 0, 344, 46, 296, 297, 298, 299, 2515 2512 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, … … 2523 2520 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2524 2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2525 0, 0, 0, 0, 0, 294, 0, 999, 0, 0, 2526 0, 0, 0, 1000, 46, 296, 297, 298, 299, 2, 2522 0, 0, 0, 0, 0, 294, 0, 379, 0, 0, 2523 0, 0, 0, 45, 46, 296, 297, 298, 299, -516, 2524 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 2525 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2526 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2527 27, 28, 29, 0, 0, 30, 0, 0, 31, 32, 2528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2530 0, 0, 0, 33, 0, 0, 34, 0, 35, 0, 2531 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 2532 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2534 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2535 44, 0, 0, 0, 0, 0, 45, 46, 1, 2, 2536 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2537 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2538 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2539 0, 30, 0, 0, 31, 32, 0, 0, 0, 0, 2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2542 0, 0, 34, 0, 35, 0, 36, 37, 0, 38, 2543 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2546 0, 0, 0, 0, 43, 0, 44, 0, 0, 0, 2547 -520, 0, 45, 46, 1, 2, 3, 4, 5, 6, 2548 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2549 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2550 0, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2551 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 33, 0, 0, 34, 0, 2554 35, 0, 36, 37, 0, 38, 39, 40, 0, 0, 2555 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2558 43, 0, 44, 0, 0, 0, 0, 0, 45, 46, 2559 205, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2560 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2561 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2562 0, 0, 0, 0, 0, 0, 31, 0, 8, 9, 2563 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2564 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2565 28, 485, 486, 487, 34, 0, 35, 31, 36, 37, 2566 0, 207, 39, 40, 0, 0, 0, 0, 0, 0, 2567 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2569 0, 0, 38, 39, 0, 0, 43, 0, 208, 0, 2570 0, 0, 0, 0, 45, 46, 1, 2, 206, 4, 2571 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2572 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2573 25, -293, 0, 26, 27, 28, 29, 0, 0, 30, 2574 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2578 0, -293, 2, 206, 4, 5, 6, 7, 8, 9, 2579 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2580 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2581 28, 0, 0, 0, 44, 0, 0, 31, 0, 0, 2582 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2584 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2585 37, 0, 207, 39, 40, 0, 0, 0, 0, 0, 2586 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 43, 0, 208, 2589 0, 0, 0, 0, 0, 45, 46, 2, 206, 4, 2590 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2591 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2592 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2593 0, 0, 31, 0, 0, 0, 0, 8, 9, 10, 2594 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2595 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2596 34, 0, 35, 0, 36, 0, 31, 38, 39, 0, 2597 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2598 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2599 22, 23, 24, 25, 34, 0, 26, 27, 28, 0, 2600 0, 38, 39, -400, 678, 31, 0, 0, 0, 0, 2601 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2603 0, 0, 0, 34, 0, 35, 635, 36, 338, 0, 2604 38, 39, 0, 0, 45, 46, 0, 0, 0, 0, 2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2606 0, 0, 1351, 0, 0, 0, 0, 0, 0, 0, 2607 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 2608 0, 0, 0, 45, 46, 2, 206, 4, 5, 6, 2609 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2610 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2611 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2612 31, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2613 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2614 24, 25, 0, 0, 26, 27, 28, 0, 34, 0, 2615 35, 0, 36, 31, 685, 38, 39, 0, 0, 0, 2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2617 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 2618 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2619 0, 0, 678, 0, 0, 0, 0, 0, 45, 46, 2620 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2621 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2622 22, 23, 24, 25, 0, 686, 26, 27, 28, 687, 2623 0, 45, 46, 0, 0, 31, 0, 0, 0, 0, 2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2626 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2627 207, 39, 0, 2, 206, 4, 5, 6, 7, 8, 2628 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2629 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2630 27, 28, 0, 0, 0, 0, 0, 270, 31, 0, 2631 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2634 36, 0, 0, 38, 39, 0, 2, 206, 4, 5, 2635 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2636 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2637 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2638 678, 31, 0, 0, 0, 0, 45, 46, 0, 0, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2641 0, 35, 0, 36, 0, 0, 38, 39, 0, 2, 2527 2642 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2528 2643 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2529 2644 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2530 0, 0, 282, 283, 31, 284, 0, 0, 0, 0, 2645 0, 0, 0, 593, 31, 0, 0, 0, 0, 45, 2646 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648 0, 0, 34, 0, 35, 0, 36, 0, 0, 207, 2649 39, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2650 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2651 0, 26, 27, 28, 0, 0, 0, 0, 282, 283, 2652 31, 284, 0, 0, 0, 0, 208, 0, 0, 0, 2653 0, 0, 45, 46, 0, 0, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 0, 285, 34, 0, 2655 0, 0, 0, 286, 0, 38, 39, 287, 0, 0, 2656 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2531 2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2532 2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 285, 34, 0, 35, 0, 36, 286, 0, 38, 2534 39, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2535 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2537 0, 0, 0, 0, 294, 0, 964, 0, 0, 0, 2538 0, 0, 344, 46, 296, 297, 298, 299, 2, 206, 2539 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2659 294, 0, 517, 0, 0, 171, 0, 0, 45, 46, 2660 296, 297, 298, 299, 8, 9, 10, 11, 12, 13, 2540 2661 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2541 2662 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2542 0, 282, 283, 31, 284, 0, 0, 0, 0, 0,2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2545 285, 34, 0, 35, 0, 36, 286, 0, 207, 39,2663 0, 282, 283, 31, 284, 8, 9, 10, 11, 12, 2664 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2665 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2666 285, 34, 0, 0, 31, 0, 286, 0, 38, 39, 2546 2667 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2547 2668 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2549 0, 0, 0, 294, 0, 379, 0, 0, 0, 0, 2550 0, 45, 46, 296, 297, 298, 299, 205, 2, 206, 2551 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2552 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2553 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2554 0, 0, 0, 31, 0, 8, 9, 10, 11, 12, 2555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2556 23, 24, 25, 0, 0, 26, 27, 28, 485, 486, 2557 487, 34, 0, 35, 31, 36, 37, 0, 207, 39, 2558 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2560 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2561 39, 0, 0, 43, 0, 208, 0, 0, 0, 0, 2562 0, 45, 46, 1, 2, 206, 4, 5, 6, 7, 2563 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2564 18, 19, 20, 21, 22, 23, 24, 25, -296, 0, 2565 26, 27, 28, 29, 0, 0, 30, 0, 0, 31, 2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2569 0, 36, 0, 0, 38, 39, 0, 0, -296, 1, 2570 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2571 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2572 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2573 0, 44, 30, 0, 0, 31, 0, 45, 46, 0, 2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2577 38, 39, 205, 2, 206, 4, 5, 6, 7, 8, 2578 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2579 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2580 27, 28, 0, 0, 0, 0, 0, 44, 31, 0, 2581 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2584 36, 0, 0, 207, 39, 0, 2, 206, 4, 5, 2585 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2586 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2587 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2588 208, 31, 0, 0, 0, 0, 45, 46, 0, 0, 2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2591 0, 35, 0, 36, 37, 0, 207, 39, 40, 0, 2592 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2595 0, 43, 0, 208, 0, 0, 0, 0, 0, 45, 2596 46, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2669 0, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2670 337, 40, 0, 294, -36, 295, 0, 0, 41, 42, 2671 0, 45, 46, 296, 297, 298, 299, 8, 9, 10, 2597 2672 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2598 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2599 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2600 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2601 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2602 0, 26, 27, 28, 34, 0, 35, 0, 36, 0, 2603 31, 38, 39, 0, 2, 206, 4, 5, 6, 7, 2604 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2605 18, 19, 20, 21, 22, 23, 24, 25, 34, 0, 2606 26, 27, 28, 0, 0, 38, 39, -403, 678, 31, 2607 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2610 635, 36, 338, 0, 38, 39, 0, 0, 45, 46, 2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2614 0, 678, 0, 0, 0, 0, 0, 45, 46, 2, 2615 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2616 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2617 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2618 0, 0, 0, 0, 31, 0, 0, 0, 8, 9, 2673 21, 22, 23, 24, 25, 0, 338, 26, 27, 28, 2674 0, 0, 45, 46, 282, 283, 31, 284, 8, 9, 2619 2675 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2620 2676 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2621 28, 0, 34, 0, 35, 0, 36, 31, 685, 38, 2622 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2624 0, 1356, 0, 0, 0, 34, 0, 0, 0, 0, 2625 0, 0, 38, 39, 0, 0, 678, 0, 0, 0, 2626 0, 0, 45, 46, 2, 206, 4, 5, 6, 7, 2627 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2628 18, 19, 20, 21, 22, 23, 24, 25, 0, 686, 2629 26, 27, 28, 687, 0, 45, 46, 0, 0, 31, 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2633 0, 36, 0, 0, 207, 39, 0, 2, 206, 4, 2634 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2635 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2636 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2637 0, 270, 31, 0, 0, 0, 0, 45, 46, 0, 2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2641 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2642 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2643 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2644 0, 0, 0, 0, 678, 31, 0, 0, 0, 0, 2645 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2647 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2648 38, 39, 0, 2, 206, 4, 5, 6, 7, 8, 2649 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2650 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2651 27, 28, 0, 0, 0, 0, 0, 593, 31, 0, 2652 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2655 36, 0, 0, 207, 39, 8, 9, 10, 11, 12, 2656 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2657 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2658 0, 0, 282, 283, 31, 284, 0, 0, 0, 0, 2659 208, 0, 0, 0, 0, 0, 45, 46, 0, 0, 2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2661 0, 285, 34, 0, 0, 0, 0, 286, 0, 38, 2662 39, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2663 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2665 0, 0, 0, 0, 294, 0, 517, 0, 0, 171, 2666 0, 0, 45, 46, 296, 297, 298, 299, 8, 9, 2667 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2668 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2669 28, 0, 0, 0, 0, 282, 283, 31, 284, 8, 2670 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2671 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2672 27, 28, 0, 0, 285, 34, 0, 0, 31, 0, 2673 286, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2674 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2675 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2676 0, 37, 0, 336, 337, 40, 0, 294, -37, 295, 2677 0, 0, 41, 42, 0, 45, 46, 296, 297, 298, 2678 299, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2679 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2680 338, 26, 27, 28, 0, 0, 45, 46, 282, 283, 2681 31, 284, 8, 9, 10, 11, 12, 13, 14, 15, 2682 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2683 0, 0, 26, 27, 28, 0, 0, 285, 34, 0, 2684 0, 31, 0, 286, 0, 38, 39, 287, 0, 0, 2685 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2687 0, 0, 0, 0, 110, 0, 38, 39, 0, 0, 2688 294, 0, 295, 0, 0, 41, 42, 0, 45, 46, 2689 296, 297, 298, 299, 8, 9, 10, 11, 12, 13, 2690 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2691 24, 25, 0, 44, 26, 27, 28, 0, 0, 45, 2692 46, 282, 283, 31, 284, 8, 9, 10, 11, 12, 2693 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2694 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2695 285, 34, 0, 0, 31, 685, 286, 0, 38, 39, 2696 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2697 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2698 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2699 39, 0, 0, 294, 0, 157, 0, 0, 0, 0, 2700 0, 45, 46, 296, 297, 298, 299, 8, 9, 10, 2701 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2702 21, 22, 23, 24, 25, 0, 686, 26, 27, 28, 2703 1093, 0, 45, 46, 282, 283, 31, 284, 8, 9, 2704 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2705 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2706 28, 0, 0, 285, 34, 0, 0, 31, 685, 286, 2677 28, 0, 0, 285, 34, 0, 0, 31, 0, 286, 2707 2678 0, 38, 39, 287, 0, 0, 288, 289, 290, 291, 2708 2679 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2709 2680 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2710 0, 0, 38, 39, 0, 0, 294, 0, 593, 0,2711 0, 0, 0, 0, 45, 46, 296, 297, 298, 299,2681 110, 0, 38, 39, 0, 0, 294, 0, 295, 0, 2682 0, 41, 42, 0, 45, 46, 296, 297, 298, 299, 2712 2683 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2713 18, 19, 20, 21, 22, 23, 24, 25, 0, 686,2714 26, 27, 28, 1224, 0, 45, 46, 282, 283, 31,2715 284, 0, 0, 0, 0, 0, 0, 0, 8, 9,2716 1 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,2717 20, 21, 22, 23, 24, 25, 285, 34, 26, 27,2718 28, 0, 286, 0, 38, 39, 287, 31, 0, 288,2684 18, 19, 20, 21, 22, 23, 24, 25, 0, 44, 2685 26, 27, 28, 0, 0, 45, 46, 282, 283, 31, 2686 284, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2687 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2688 0, 26, 27, 28, 0, 0, 285, 34, 0, 0, 2689 31, 685, 286, 0, 38, 39, 287, 0, 0, 288, 2719 2690 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2691 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2692 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2693 0, 157, 0, 0, 0, 0, 0, 45, 46, 296, 2694 297, 298, 299, 8, 9, 10, 11, 12, 13, 14, 2695 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2696 25, 0, 686, 26, 27, 28, 1092, 0, 45, 46, 2697 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 2698 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2699 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 2700 34, 0, 0, 31, 685, 286, 0, 38, 39, 287, 2701 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2702 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2703 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2704 0, 0, 294, 0, 593, 0, 0, 0, 0, 0, 2705 45, 46, 296, 297, 298, 299, 8, 9, 10, 11, 2706 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2707 22, 23, 24, 25, 0, 686, 26, 27, 28, 1221, 2708 0, 45, 46, 282, 283, 31, 284, 0, 0, 0, 2709 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2710 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2711 24, 25, 285, 34, 26, 27, 28, 0, 286, 0, 2712 38, 39, 287, 31, 0, 288, 289, 290, 291, 41, 2713 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2720 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2721 0, 0, 0, 0, 0, 34, 0, 0, 0, 294, 2722 0, 379, 38, 39, 0, 0, 0, 45, 46, 296, 2723 297, 298, 299, 467, 2, 206, 4, 5, 6, 7, 2724 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2725 18, 19, 20, 21, 22, 23, 24, 25, 0, 257, 2726 26, 27, 28, 0, 0, 45, 46, 0, 0, 31, 2727 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2715 0, 34, 0, 0, 0, 294, 0, 379, 38, 39, 2716 0, 0, 0, 45, 46, 296, 297, 298, 299, 467, 2717 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2718 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2719 22, 23, 24, 25, 0, 257, 26, 27, 28, 0, 2720 0, 45, 46, 0, 0, 31, 0, 0, 0, 8, 2721 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2722 19, 20, 21, 22, 23, 24, 25, -293, 0, 26, 2723 27, 28, 0, 34, 0, 35, 0, 36, 31, 0, 2724 38, 39, 0, 0, 0, 0, 0, 8, 9, 10, 2725 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2726 21, 22, 23, 24, 25, 0, 34, 26, 27, 28, 2727 0, 37, 0, 336, 337, 40, 31, -293, 0, 0, 2728 -3, 0, 41, 42, 0, 8, 9, 10, 11, 12, 2729 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2730 23, 24, 25, -293, 34, 26, 27, 28, 0, 37, 2731 338, 336, 337, 40, 31, 0, 45, 46, 0, 0, 2732 41, 42, 0, 8, 9, 10, 11, 12, 13, 14, 2728 2733 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2729 25, 0, 0, 26, 27, 28, 0, 34, 0, 35, 2730 0, 36, 31, 0, 38, 39, 0, 0, 0, 0, 2731 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2732 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2733 34, 26, 27, 28, 0, 37, 0, 38, 39, 40, 2734 31, 0, 0, 0, -3, 0, 41, 42, 0, 8, 2735 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2736 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2737 27, 28, 43, 37, 44, 207, 39, 40, 31, 0, 2738 45, 46, 0, 0, 41, 42, 0, 8, 9, 10, 2739 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2740 21, 22, 23, 24, 25, -296, 34, 26, 27, 28, 2741 43, 37, 270, 336, 337, 40, 31, 0, 45, 46, 2742 0, 0, 41, 42, 0, 8, 9, 10, 11, 12, 2743 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2744 23, 24, 25, -296, 34, 26, 27, 28, 635, 0, 2745 338, 38, 39, 0, 31, -296, 45, 46, 8, 9, 2746 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2747 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2748 28, 0, 34, 0, 0, 0, 635, 31, 338, 38, 2749 39, 0, 0, -296, 45, 46, 8, 9, 10, 11, 2734 25, 0, 34, 26, 27, 28, 635, 0, 338, 38, 2735 39, 0, 31, -293, 45, 46, 8, 9, 10, 11, 2750 2736 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2751 22, 23, 24, 25, 0, 34, 26, 27, 28, 0,2752 0, 0, 38, 39, 0, 31, 338, 0, 0, 0,2737 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2738 34, 0, 0, 0, 0, 31, 338, 38, 39, 0, 2753 2739 0, 0, 45, 46, 8, 9, 10, 11, 12, 13, 2754 2740 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2755 24, 25, 0, 34, 26, 27, 28, 0, 0, 157,2756 207, 39, 0, 31, 0, 45, 46, 8, 9, 10,2757 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,2758 21, 22, 23, 24, 25, 0, 0, 26, 27, 28,2759 0, 34, 0, 0, 0, 0, 31, 270, 38, 39,2760 0, 0, 0, 45, 46, 8, 9, 10, 11, 12,2741 24, 25, 0, 34, 26, 27, 28, 0, 0, 0, 2742 207, 39, 0, 31, 157, 0, 0, 0, 0, 0, 2743 45, 46, 8, 9, 10, 11, 12, 13, 14, 15, 2744 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2745 0, 34, 26, 27, 28, 0, 0, 270, 38, 39, 2746 0, 31, 0, 45, 46, 8, 9, 10, 11, 12, 2761 2747 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2762 23, 24, 25, 0, 34, 26, 27, 28, 0, 0,2763 0, 38, 39, 0, 31, 338, 0, 0, 0, 0,2748 23, 24, 25, 0, 0, 26, 27, 28, 0, 34, 2749 0, 0, 0, 0, 31, 338, 38, 39, 0, 0, 2764 2750 0, 45, 46, 8, 9, 10, 11, 12, 13, 14, 2765 2751 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2766 25, 0, 34, 26, 27, 28, 0, 0, 686, 38, 2767 39, 0, 31, 0, 45, 46, 2, 206, 4, 5, 2768 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2769 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2770 34, 0, 26, 27, 28, 0, 593, 38, 39, 0, 2771 0, 31, 45, 46, 0, 0, 0, 0, 0, 0, 2752 25, 0, 34, 26, 27, 28, 0, 0, 0, 38, 2753 39, 0, 31, 686, 0, 0, 0, 0, 0, 45, 2754 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2755 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2756 34, 26, 27, 28, 0, 0, 593, 38, 39, 0, 2757 31, 0, 45, 46, 2, 206, 4, 5, 6, 7, 2758 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2759 18, 19, 20, 21, 22, 23, 24, 25, 34, 0, 2760 26, 27, 28, 0, 44, 207, 39, 0, 0, 31, 2761 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2772 2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2774 0, 35, 0, 36, 44, 0, 38, 39, 0, 0, 2775 45, 46, 282, 283, 0, 284, 1043, 0, 1044, 0, 2776 0, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 2777 0, 1528, 1053, 0, 0, 0, 1054, 1055, 0, 33, 2778 0, 285, -416, 0, 0, 0, 0, 1056, 0, 0, 2779 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2780 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782 0, 0, 0, 0, 294, 0, 379, 0, 0, 171, 2783 0, 0, 45, 46, 296, 297, 298, 299, 0, 0, 2784 282, 283, 1058, 284, 1043, 0, 1044, -131, 0, 1045, 2785 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 0, 0, 2786 1053, 0, 0, 0, 1054, 1055, 0, 33, 0, 285, 2787 0, 0, 0, 0, 0, 1056, 0, 0, 0, 287, 2763 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2764 0, 36, 0, 0, 38, 39, 0, 0, 45, 46, 2765 282, 283, 0, 284, 1042, 0, 1043, 0, 0, 1044, 2766 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 1525, 2767 1052, 0, 0, 0, 1053, 1054, 0, 33, 0, 285, 2768 -413, 0, 0, 0, 0, 1055, 0, 0, 0, 287, 2788 2769 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2789 2770 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2790 2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2791 2772 0, 0, 294, 0, 379, 0, 0, 171, 0, 0, 2792 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 2793 1058, 0, 0, 0, 0, -131, 2, 206, 4, 5, 2794 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2795 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2796 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2797 0, 31, 0, 282, 283, 0, 284, 1043, 0, 1044, 2798 1402, 1403, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 2799 0, 0, 1528, 1053, 0, 0, 0, 1054, 1055, 34, 2800 33, 35, 285, 36, 0, 0, 38, 39, 1056, 0, 2801 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2802 42, 0, 292, 293, 0, 0, 0, 0, 1315, 0, 2773 45, 46, 296, 297, 298, 299, 0, 0, 282, 283, 2774 1057, 284, 1042, 0, 1043, -128, 0, 1044, 1045, 1046, 2775 1047, 1048, 1049, 1050, 1051, 0, 0, 0, 1052, 0, 2776 0, 0, 1053, 1054, 0, 33, 0, 285, 0, 0, 2777 0, 0, 0, 1055, 0, 0, 0, 287, 0, 0, 2778 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2803 2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2804 0, 0, 0, 0, 0, 294, 0, 379, 0, 0, 2805 171, 0, 0, 45, 46, 296, 297, 298, 299, 0, 2806 0, 282, 283, 1058, 284, 1043, 0, 1044, 1402, 1403, 2807 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 0, 2808 0, 1053, 0, 0, 0, 1054, 1055, 0, 33, 0, 2809 285, 0, 0, 0, 0, 0, 1056, 0, 0, 0, 2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781 294, 0, 379, 0, 0, 171, 0, 0, 45, 46, 2782 296, 297, 298, 299, 0, 0, 0, 0, 1057, 0, 2783 0, 0, 0, -128, 2, 206, 4, 5, 6, 7, 2784 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2785 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2786 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2787 0, 282, 283, 0, 284, 1042, 0, 1043, 1399, 1400, 2788 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 2789 1525, 1052, 0, 0, 0, 1053, 1054, 34, 33, 35, 2790 285, 36, 0, 0, 38, 39, 1055, 0, 0, 0, 2810 2791 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2811 292, 293, 0, 0, 0, 0, 0, 0, 0, 0,2792 292, 293, 0, 0, 0, 0, 1312, 0, 0, 0, 2812 2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2813 2794 0, 0, 0, 294, 0, 379, 0, 0, 171, 0, 2814 2795 0, 45, 46, 296, 297, 298, 299, 0, 0, 282, 2815 283, 105 8, 284, 1043, 0, 1044, 0, 0, 1045, 1046,2816 104 7, 1048, 1049, 1050, 1051, 1052, 0, 0, 0, 1053,2817 0, 0, 0, 105 4, 1055, 0, 33, 0, 285, 0,2818 0, 0, 0, 0, 105 6, 0, 0, 0, 287, 0,2796 283, 1057, 284, 1042, 0, 1043, 1399, 1400, 1044, 1045, 2797 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 0, 1052, 2798 0, 0, 0, 1053, 1054, 0, 33, 0, 285, 0, 2799 0, 0, 0, 0, 1055, 0, 0, 0, 287, 0, 2819 2800 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2820 0, 0, 0, 0, 0, 0, 282, 283, 0, 284,2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2821 2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2822 2803 0, 294, 0, 379, 0, 0, 171, 0, 0, 45, 2823 46, 296, 297, 298, 299, 285, 0, 0, 0, 1058, 2824 0, 286, 0, 0, 0, 287, 0, 0, 288, 289, 2825 290, 291, 41, 42, 0, 292, 293, 0, 0, 0, 2826 0, 0, 0, 282, 283, 0, 284, 0, 0, 0, 2827 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2828 379, 0, 282, 283, 0, 284, 45, 46, 296, 297, 2829 298, 299, 285, 0, 0, 0, 0, 0, 286, 0, 2804 46, 296, 297, 298, 299, 0, 0, 282, 283, 1057, 2805 284, 1042, 0, 1043, 0, 0, 1044, 1045, 1046, 1047, 2806 1048, 1049, 1050, 1051, 0, 0, 0, 1052, 0, 0, 2807 0, 1053, 1054, 0, 33, 0, 285, 0, 0, 0, 2808 0, 0, 1055, 0, 0, 0, 287, 0, 0, 288, 2809 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2810 0, 0, 0, 0, 282, 283, 0, 284, 0, 0, 2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2812 0, 379, 0, 0, 171, 0, 0, 45, 46, 296, 2813 297, 298, 299, 285, 0, 0, 0, 1057, 0, 286, 2814 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2815 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2816 0, 282, 283, 0, 284, 0, 0, 0, 0, 0, 2817 0, 0, 0, 0, 0, 0, 294, 0, 379, 0, 2818 0, 972, 0, 0, 45, 46, 296, 297, 298, 299, 2819 285, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2820 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2821 292, 293, 0, 0, 0, 0, 0, 0, 282, 283, 2822 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 2823 0, 0, 0, 294, 0, 379, 0, 282, 283, 0, 2824 284, 45, 46, 296, 297, 298, 299, 285, 0, 0, 2825 0, 0, 0, 286, 0, 0, 0, 287, 0, 0, 2826 288, 289, 290, 291, 41, 42, 285, 292, 293, 0, 2827 0, 0, 286, 0, 0, 0, 287, 0, 0, 288, 2828 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2829 294, 0, 379, 0, 282, 283, 0, 284, 709, 46, 2830 296, 297, 298, 299, 0, 0, 0, 0, 0, 294, 2831 0, 379, 0, 282, 283, 0, 284, 344, 46, 296, 2832 297, 298, 299, 285, 0, 0, 0, 0, 0, 286, 2833 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2834 41, 42, 285, 292, 293, 0, 0, 0, 286, 0, 2830 2835 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2831 42, 285, 292, 293, 0, 0, 0, 286, 0, 0, 2832 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2833 0, 292, 293, 0, 0, 294, 0, 379, 0, 282, 2834 283, 0, 284, 709, 46, 296, 297, 298, 299, 0, 2835 0, 0, 0, 0, 294, 0, 379, 0, 282, 283, 2836 0, 284, 344, 46, 296, 297, 298, 299, 285, 0, 2837 0, 0, 0, 0, 286, 0, 0, 0, 287, 0, 2838 0, 288, 289, 290, 291, 41, 42, 285, 292, 293, 2839 0, 0, 0, 286, 0, 0, 0, 287, 0, 0, 2840 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2841 0, 506, 0, 0, 0, 282, 283, 0, 284, 45, 2842 46, 296, 297, 298, 299, 0, 0, 0, 0, 0, 2843 294, 0, 0, 0, 282, 283, 0, 284, 45, 46, 2844 296, 297, 298, 299, 285, 0, 0, 0, 0, 0, 2845 286, 0, 0, 0, 287, 0, 0, 288, 289, 290, 2846 291, 41, 42, 285, 292, 293, 0, 0, 0, 286, 2847 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2848 41, 42, 0, 292, 293, 0, 0, 511, 0, 0, 2849 0, 0, 0, 0, 0, 45, 46, 296, 297, 298, 2850 299, 0, 0, 0, 0, 0, 514, 0, 0, 0, 2851 0, 0, 0, 0, 45, 46, 296, 297, 298, 299, 2836 42, 0, 292, 293, 0, 0, 506, 0, 0, 0, 2837 282, 283, 0, 284, 45, 46, 296, 297, 298, 299, 2838 0, 0, 0, 0, 0, 294, 0, 0, 0, 282, 2839 283, 0, 284, 45, 46, 296, 297, 298, 299, 285, 2840 0, 0, 0, 0, 0, 286, 0, 0, 0, 287, 2841 0, 0, 288, 289, 290, 291, 41, 42, 285, 292, 2842 293, 0, 0, 0, 286, 0, 0, 0, 287, 0, 2843 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2844 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 2845 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 2846 0, 514, 0, 0, 0, 0, 0, 0, 0, 45, 2847 46, 296, 297, 298, 299, 2, 206, 4, 5, 6, 2848 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2849 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2851 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2853 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2854 35, 0, 36, 37, 0, 174, 175, 40, 0, 0, 2855 0, 0, 0, 0, 41, 42, 205, 2, 206, 4, 2856 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2857 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2858 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2859 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862 34, 0, 35, 0, 36, 0, 0, 207, 39, 467, 2852 2863 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2853 2864 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2854 22, 23, 24, 25, 0, 0, 0, 0, 0, 0,2865 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2855 2866 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2856 2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2857 2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2859 174, 175, 40, 0, 0, 0, 0, 0, 0, 41, 2860 42, 205, 2, 206, 4, 5, 6, 7, 8, 9, 2869 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2870 38, 39, 2, 206, 4, 5, 6, 7, 8, 9, 2861 2871 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2862 2872 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, … … 2865 2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2866 2876 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2867 0, 0, 207, 39, 467, 2, 206, 4, 5, 6, 2868 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2869 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2870 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2871 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2874 35, 0, 36, 0, 0, 38, 39, 2, 206, 4, 2875 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2876 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2877 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2878 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2881 34, 0, 35, 0, 36, 0, 0, 207, 39 2877 0, 0, 207, 39 2882 2878 }; 2883 2879 2884 2880 #define yypact_value_is_default(yystate) \ 2885 ((yystate) == (-13 38))2881 ((yystate) == (-1323)) 2886 2882 2887 2883 #define yytable_value_is_error(yytable_value) \ … … 2890 2886 static const yytype_int16 yycheck[] = 2891 2887 { 2892 0, 1, 239, 43, 185, 116, 534, 0, 204, 185, 2893 43, 185, 185, 281, 185, 43, 521, 1, 601, 185, 2894 185, 603, 168, 169, 105, 750, 0, 1, 219, 621, 2895 349, 876, 32, 345, 49, 750, 0, 693, 603, 32, 2896 156, 750, 513, 43, 1023, 757, 647, 572, 186, 49, 2897 1325, 985, 186, 492, 189, 0, 49, 496, 32, 1022, 2898 1023, 196, 156, 63, 32, 1402, 66, 601, 32, 69, 2899 63, 0, 28, 66, 155, 187, 69, 109, 601, 39, 2900 85, 43, 601, 0, 265, 69, 57, 32, 349, 265, 2901 201, 265, 265, 43, 265, 69, 39, 601, 113, 265, 2902 265, 1035, 63, 32, 51, 105, 364, 256, 113, 418, 2903 368, 601, 1042, 113, 39, 32, 116, 117, 72, 696, 2904 43, 109, 78, 111, 604, 601, 109, 876, 266, 438, 2905 610, 146, 266, 268, 490, 106, 1473, 446, 109, 96, 2906 39, 734, 72, 426, 427, 185, 146, 147, 1423, 261, 2907 262, 111, 185, 1456, 147, 155, 156, 185, 1054, 1055, 2908 160, 95, 109, 109, 110, 122, 109, 160, 111, 64, 2909 482, 132, 0, 1, 0, 72, 82, 96, 132, 72, 2910 636, 637, 907, 688, 284, 185, 186, 1490, 323, 1492, 2911 83, 84, 907, 186, 209, 129, 331, 653, 907, 334, 2912 82, 201, 132, 122, 32, 111, 32, 307, 308, 209, 2913 109, 494, 111, 1117, 109, 719, 209, 1121, 111, 410, 2914 117, 221, 876, 185, 239, 265, 294, 488, 221, 719, 2915 513, 814, 265, 39, 1130, 185, 504, 265, 66, 239, 2916 66, 69, 11, 719, 826, 345, 902, 218, 39, 605, 2917 1229, 251, 1505, 609, 128, 711, 271, 131, 251, 259, 2918 341, 826, 185, 398, 264, 265, 266, 402, 406, 418, 2919 795, 271, 406, 266, 630, 109, 988, 251, 634, 1532, 2920 814, 381, 39, 251, 603, 396, 116, 251, 1406, 438, 2921 371, 814, 307, 1042, 294, 814, 579, 446, 44, 45, 2922 1279, 272, 107, 109, 112, 111, 251, 307, 279, 621, 2923 814, 256, 82, 424, 626, 1278, 1279, 433, 109, 430, 2924 111, 109, 251, 323, 814, 926, 131, 256, 328, 112, 2925 345, 908, 590, 116, 251, 328, 816, 228, 814, 433, 2926 110, 341, 480, 131, 479, 345, 480, 803, 114, 349, 2927 350, 934, 109, 935, 111, 3, 247, 70, 426, 427, 2928 73, 110, 1292, 76, 364, 78, 116, 3, 368, 115, 2929 1215, 371, 85, 682, 632, 49, 953, 348, 44, 45, 2930 130, 130, 1500, 44, 45, 90, 91, 1505, 482, 116, 2931 72, 1045, 72, 221, 365, 221, 396, 79, 369, 79, 2932 934, 83, 84, 83, 84, 72, 406, 1525, 110, 1001, 2933 526, 426, 427, 406, 1532, 934, 83, 84, 112, 1398, 2934 125, 126, 116, 251, 424, 251, 426, 427, 130, 111, 2935 430, 111, 526, 433, 746, 1398, 571, 572, 506, 113, 2936 1505, 110, 109, 511, 525, 116, 514, 109, 114, 111, 2937 550, 551, 552, 114, 454, 0, 1390, 1391, 1051, 130, 2938 1525, 130, 464, 109, 969, 116, 1215, 1532, 1252, 737, 2939 1254, 1255, 472, 418, 72, 591, 74, 75, 0, 494, 2940 480, 132, 482, 109, 484, 83, 84, 480, 488, 418, 2941 110, 484, 848, 438, 494, 109, 116, 591, 513, 212, 2942 568, 446, 648, 109, 943, 111, 506, 826, 508, 438, 2943 484, 511, 983, 513, 514, 1445, 114, 446, 131, 1101, 2944 484, 521, 1452, 658, 350, 525, 526, 662, 1129, 72, 2945 1010, 1011, 111, 682, 113, 209, 79, 119, 120, 484, 2946 83, 84, 1119, 1292, 655, 657, 72, 805, 74, 75, 2947 688, 130, 810, 482, 688, 484, 112, 83, 84, 708, 2948 116, 1215, 116, 116, 579, 826, 279, 484, 111, 116, 2949 116, 571, 572, 1503, 111, 110, 113, 130, 132, 579, 2950 109, 116, 1087, 109, 940, 132, 132, 1092, 114, 109, 2951 590, 591, 116, 130, 906, 595, 1476, 271, 109, 110, 2952 111, 601, 1482, 603, 1181, 1182, 621, 72, 132, 74, 2953 75, 626, 4, 5, 6, 7, 8, 9, 83, 84, 2954 294, 621, 1502, 110, 117, 112, 626, 1507, 628, 116, 2955 123, 124, 632, 307, 109, 635, 636, 637, 72, 352, 2956 898, 354, 76, 116, 131, 132, 111, 473, 109, 83, 2957 84, 622, 746, 653, 1308, 655, 484, 757, 484, 132, 2958 795, 0, 1, 912, 745, 914, 116, 638, 110, 671, 2959 116, 116, 863, 110, 591, 109, 112, 69, 939, 71, 2960 116, 652, 132, 117, 118, 685, 132, 132, 688, 1001, 2961 29, 30, 883, 32, 109, 811, 1445, 110, 116, 1292, 2962 116, 110, 110, 1452, 43, 116, 1360, 116, 945, 1363, 2963 49, 711, 712, 713, 132, 110, 132, 811, 57, 719, 2964 720, 132, 116, 869, 63, 110, 907, 66, 109, 442, 2965 69, 907, 116, 907, 907, 112, 907, 682, 132, 116, 2966 132, 907, 907, 82, 83, 745, 746, 72, 132, 30, 2967 750, 751, 1406, 682, 1503, 110, 112, 1411, 83, 84, 2968 109, 116, 733, 708, 85, 86, 87, 106, 88, 89, 2969 109, 909, 115, 1366, 109, 909, 111, 116, 913, 708, 2970 454, 1309, 117, 118, 1509, 1439, 92, 93, 109, 791, 2971 111, 132, 113, 114, 1509, 795, 109, 623, 110, 801, 2972 1509, 82, 83, 803, 116, 805, 64, 807, 147, 1386, 2973 810, 811, 906, 815, 814, 109, 155, 746, 1014, 112, 2974 109, 160, 111, 132, 905, 1402, 826, 114, 117, 118, 2975 115, 116, 506, 72, 508, 74, 75, 511, 1150, 114, 2976 514, 109, 110, 111, 83, 84, 185, 186, 72, 1117, 2977 74, 75, 76, 1121, 1122, 990, 1449, 114, 1451, 83, 2978 84, 110, 201, 506, 109, 508, 1124, 116, 511, 1523, 2979 209, 514, 1007, 699, 110, 1529, 876, 110, 111, 218, 2980 116, 72, 221, 74, 75, 109, 1540, 713, 132, 228, 2981 1544, 1037, 83, 84, 811, 1472, 1473, 109, 898, 111, 2982 132, 1001, 876, 72, 243, 905, 906, 907, 247, 909, 2983 79, 1504, 251, 252, 83, 84, 110, 1229, 109, 58, 2984 59, 921, 116, 114, 44, 45, 265, 266, 1022, 82, 2985 945, 876, 110, 272, 934, 935, 112, 110, 116, 939, 2986 279, 109, 1042, 116, 944, 945, 110, 876, 109, 1087, 2987 1085, 110, 116, 1087, 1092, 115, 116, 116, 1092, 876, 2988 944, 72, 243, 74, 75, 76, 109, 1, 111, 969, 2989 944, 1239, 83, 84, 117, 118, 110, 906, 110, 127, 2990 1485, 807, 116, 82, 116, 3, 1001, 553, 554, 328, 2991 1125, 110, 10, 11, 12, 13, 14, 116, 1109, 561, 2992 562, 1001, 10, 11, 12, 13, 14, 110, 110, 348, 2993 349, 685, 118, 116, 116, 49, 128, 1019, 1020, 110, 2994 733, 39, 1022, 1023, 94, 116, 365, 555, 556, 1534, 2995 369, 39, 10, 11, 12, 13, 14, 110, 109, 110, 2996 111, 380, 1042, 116, 3, 109, 110, 111, 876, 67, 2997 876, 10, 11, 12, 13, 14, 1150, 396, 1326, 67, 2998 111, 39, 1330, 557, 558, 559, 560, 406, 1042, 131, 2999 109, 105, 58, 59, 60, 1077, 1078, 109, 109, 113, 3000 39, 109, 1082, 111, 109, 424, 111, 1087, 109, 67, 3001 111, 430, 1092, 432, 72, 112, 112, 1042, 76, 380, 3002 109, 1101, 111, 110, 110, 83, 84, 112, 67, 1109, 3003 110, 72, 146, 1042, 110, 76, 944, 110, 110, 0, 3004 1, 155, 83, 84, 1124, 1042, 1194, 1195, 467, 1197, 3005 1211, 109, 109, 472, 111, 111, 1204, 0, 1206, 117, 3006 118, 480, 112, 114, 116, 484, 131, 114, 109, 488, 3007 1150, 32, 491, 110, 493, 109, 117, 118, 114, 1427, 3008 112, 4, 5, 6, 7, 8, 9, 110, 112, 32, 3009 72, 205, 74, 75, 76, 209, 112, 112, 1004, 112, 3010 43, 83, 84, 130, 1278, 66, 49, 116, 69, 528, 3011 33, 130, 1192, 1193, 533, 29, 130, 110, 110, 1, 3012 63, 112, 110, 66, 114, 239, 69, 109, 112, 1193, 3013 491, 1211, 493, 116, 1042, 1215, 1042, 115, 115, 1193, 3014 72, 1150, 74, 75, 76, 1227, 69, 115, 71, 1229, 3015 109, 83, 84, 1233, 110, 130, 132, 271, 110, 116, 3016 274, 1215, 110, 110, 583, 3, 110, 921, 110, 1233, 3017 116, 590, 10, 11, 12, 13, 14, 1259, 115, 1233, 3018 294, 110, 601, 110, 603, 1267, 1268, 1269, 110, 110, 3019 1215, 1382, 110, 307, 110, 156, 29, 110, 1278, 1279, 3020 110, 39, 1519, 622, 147, 110, 1215, 1287, 110, 110, 3021 110, 110, 1292, 130, 1362, 110, 131, 160, 1215, 638, 3022 1229, 112, 116, 112, 643, 110, 110, 341, 116, 67, 3023 110, 345, 130, 652, 109, 654, 655, 656, 1292, 116, 3024 114, 112, 185, 186, 110, 1325, 110, 110, 1509, 1331, 3025 364, 116, 112, 1509, 368, 1509, 1509, 371, 1509, 110, 3026 221, 1325, 116, 1509, 1509, 110, 209, 1292, 116, 688, 3027 110, 1325, 109, 692, 109, 694, 112, 109, 221, 698, 3028 109, 109, 643, 1292, 1192, 1193, 1192, 706, 130, 112, 3029 251, 132, 1510, 115, 1485, 1292, 1510, 464, 110, 110, 3030 719, 720, 1382, 110, 128, 115, 115, 1215, 251, 1215, 3031 114, 112, 426, 427, 733, 72, 1534, 132, 1398, 76, 3032 1534, 49, 265, 110, 112, 1233, 83, 84, 1082, 112, 3033 1381, 692, 116, 694, 110, 63, 110, 698, 66, 110, 3034 454, 69, 112, 1423, 112, 112, 110, 112, 47, 112, 3035 112, 132, 109, 467, 111, 132, 115, 132, 110, 1423, 3036 117, 118, 115, 132, 110, 1445, 132, 115, 112, 1423, 3037 252, 112, 1452, 112, 1454, 130, 1456, 112, 492, 1287, 3038 494, 1287, 496, 112, 1292, 328, 1292, 112, 110, 1509, 3039 110, 1445, 506, 112, 508, 814, 1509, 511, 1452, 513, 3040 514, 1509, 112, 109, 109, 1485, 349, 826, 109, 60, 3041 1490, 525, 1492, 110, 110, 109, 114, 1325, 132, 147, 3042 1445, 112, 112, 1503, 1519, 110, 112, 1452, 110, 1509, 3043 1510, 96, 160, 96, 109, 109, 1445, 1510, 115, 1519, 3044 57, 110, 110, 1452, 55, 132, 110, 42, 1445, 1503, 3045 869, 110, 0, 1, 1534, 1452, 875, 130, 186, 116, 3046 671, 1534, 132, 406, 110, 579, 4, 5, 6, 7, 3047 8, 9, 433, 110, 132, 96, 590, 96, 1503, 898, 3048 132, 209, 110, 132, 32, 110, 97, 132, 907, 106, 3049 909, 115, 109, 221, 1503, 110, 110, 916, 85, 86, 3050 87, 49, 112, 112, 671, 132, 1503, 621, 869, 109, 3051 132, 115, 626, 115, 875, 1423, 110, 110, 632, 132, 3052 939, 69, 109, 484, 111, 110, 113, 114, 110, 667, 3053 1058, 69, 563, 71, 564, 979, 565, 1445, 155, 1445, 3054 959, 484, 567, 1215, 1452, 488, 1452, 72, 566, 74, 3055 75, 76, 1473, 1368, 973, 916, 1544, 105, 83, 84, 3056 1122, 1330, 981, 1302, 1073, 526, 985, 685, 1452, 685, 3057 914, 685, 1092, 698, 973, 66, 922, 583, 869, 649, 3058 791, 941, 193, 723, 109, 467, 111, 484, 1233, -1, 3059 801, 82, 117, 118, 733, 1503, -1, 1503, 571, 147, 3060 328, 218, 571, -1, 815, 216, 571, 155, 156, 723, 3061 -1, -1, 973, -1, -1, 226, 1035, -1, -1, -1, 3062 -1, -1, -1, -1, 791, -1, 117, -1, -1, -1, 3063 591, 745, -1, -1, 801, -1, -1, -1, 186, -1, 3064 -1, -1, -1, -1, -1, -1, 528, -1, 815, -1, 3065 -1, 533, -1, 201, 1073, 272, 204, 205, 601, -1, 3066 603, 209, 279, -1, -1, -1, -1, -1, 1087, 160, 3067 -1, -1, -1, 1092, 635, 636, 637, -1, 406, -1, 3068 -1, -1, 230, 294, -1, -1, 234, -1, 236, -1, 3069 1109, 805, 653, -1, -1, -1, 810, 245, -1, -1, 3070 1454, 583, 1456, 251, -1, -1, -1, -1, 256, -1, 3071 696, -1, 1073, -1, -1, -1, -1, -1, 266, -1, 3072 -1, 72, -1, 74, 75, 76, 274, -1, -1, -1, 3073 221, 348, 83, 84, -1, -1, 1490, -1, 1492, -1, 3074 -1, -1, -1, -1, -1, 688, -1, -1, 365, -1, 3075 711, -1, 369, -1, -1, -1, 0, -1, 109, -1, 3076 111, 10, 11, 12, 13, 14, 117, 118, 259, 1188, 3077 -1, -1, 654, 264, 656, -1, 719, 720, -1, 130, 3078 -1, -1, -1, -1, 898, -1, -1, -1, 32, -1, 3079 39, 905, 1211, 341, -1, -1, -1, 345, -1, -1, 3080 -1, -1, 788, 351, -1, -1, -1, 921, 1019, 1020, 3081 -1, -1, -1, -1, -1, 432, 364, -1, 67, -1, 3082 368, -1, -1, 371, 706, 69, -1, 1188, -1, 943, 3083 944, 945, 443, 1252, -1, 1254, 1255, -1, -1, -1, 3084 -1, -1, 803, -1, 10, 11, 12, 13, 14, -1, 3085 811, -1, 1019, 1020, -1, -1, -1, -1, 469, 350, 3086 109, -1, 111, -1, -1, -1, 1077, 1078, 117, 118, 3087 418, 814, -1, 39, -1, -1, -1, -1, -1, 865, 3088 -1, -1, -1, 826, -1, 433, -1, 1001, -1, -1, 3089 438, -1, -1, -1, -1, 506, -1, -1, 446, -1, 3090 511, 67, -1, 514, -1, -1, -1, -1, -1, -1, 3091 1077, 1078, 156, -1, -1, 876, 464, -1, -1, 467, 3092 -1, -1, 908, -1, 10, 11, 12, 13, 14, -1, 3093 -1, -1, -1, -1, 482, -1, 484, -1, -1, -1, 3094 431, -1, -1, 109, 492, 111, -1, -1, 496, -1, 3095 -1, 117, 118, 39, -1, -1, -1, -1, -1, -1, 3096 -1, -1, 1381, 1382, 907, -1, 909, 953, 1082, -1, 3097 -1, 1390, 1391, 590, -1, -1, -1, 525, 526, -1, 3098 -1, 67, 473, 944, -1, -1, 230, -1, -1, -1, 3099 -1, -1, -1, -1, -1, -1, 939, -1, -1, -1, 3100 -1, -1, 988, -1, -1, 622, -1, 251, -1, 1428, 3101 1124, -1, 256, -1, -1, -1, -1, 0, -1, -1, 3102 -1, 638, -1, 109, 572, 111, -1, -1, -1, -1, 3103 -1, 117, 118, -1, 72, 652, 74, 75, 76, -1, 3104 -1, -1, 590, 591, -1, 83, 84, -1, 1259, 32, 3105 -1, -1, -1, 1039, -1, 603, 1267, 1268, 1269, 670, 3106 1227, 1022, 1023, -1, -1, -1, 1485, 1486, 679, -1, 3107 -1, 109, 683, 621, -1, -1, 1495, 959, 626, 117, 3108 118, 1042, -1, -1, 632, -1, 69, 635, 636, 637, 3109 1509, 1510, 1259, -1, -1, -1, -1, 1211, -1, 981, 3110 1267, 1268, 1269, 985, 595, 653, 72, 351, 74, 75, 3111 76, -1, -1, -1, -1, 1534, 733, 83, 84, 1233, 3112 1331, -1, -1, 671, -1, -1, 10, 11, 12, 13, 3113 14, -1, 623, 1119, 682, -1, -1, 628, -1, -1, 3114 -1, -1, -1, 109, 1087, 111, -1, -1, -1, 1092, 3115 -1, 117, 118, 1035, -1, 39, -1, -1, -1, -1, 3116 708, -1, -1, 711, 1331, -1, -1, 66, -1, -1, 3117 -1, -1, 720, 156, 418, 723, -1, -1, -1, -1, 3118 -1, -1, -1, 67, -1, -1, -1, -1, 72, 433, 3119 74, 75, 76, -1, 438, 1181, 1182, 745, 746, 83, 3120 84, -1, 446, 751, -1, -1, -1, -1, 699, -1, 3121 -1, 1325, -1, -1, -1, -1, -1, -1, 117, -1, 3122 464, -1, 713, -1, -1, 109, -1, 111, -1, -1, 3123 -1, 1192, 1193, 117, 118, -1, -1, -1, 482, -1, 3124 484, -1, -1, 791, -1, -1, -1, -1, -1, -1, 3125 -1, -1, -1, 801, 1215, 803, -1, 805, -1, -1, 3126 808, 160, 810, 811, -1, -1, -1, 815, 251, -1, 3127 -1, -1, 1233, 256, -1, -1, -1, 825, -1, -1, 3128 -1, 898, 526, -1, -1, -1, -1, -1, -1, 900, 3129 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3130 19, 20, 21, 22, 23, 24, 25, 26, 27, 1423, 3131 -1, 30, 31, 32, -1, -1, 807, 1278, 1279, -1, 3132 39, 0, 221, -1, -1, -1, 1287, -1, 876, -1, 3133 -1, 1292, -1, -1, 72, -1, 74, 75, 76, -1, 3134 1454, -1, 1456, -1, -1, 83, 84, 591, 67, -1, 3135 898, -1, -1, 32, -1, 74, 75, 905, 906, -1, 3136 259, 909, -1, -1, 1325, 264, -1, -1, 351, -1, 3137 1252, 109, 1254, 1255, -1, -1, 1490, -1, 1492, 117, 3138 118, -1, -1, -1, -1, -1, -1, 935, -1, -1, 3139 69, 635, 636, 637, -1, 943, 944, -1, 117, 118, 3140 1386, -1, -1, -1, -1, 1519, -1, -1, -1, 653, 3141 -1, -1, -1, -1, -1, -1, 1402, -1, -1, -1, 3142 -1, -1, -1, -1, -1, -1, -1, 671, -1, -1, 3143 -1, -1, -1, -1, -1, 418, -1, 1398, 682, -1, 3144 -1, -1, 1053, -1, -1, -1, -1, -1, -1, -1, 3145 433, 350, -1, 1001, -1, 438, -1, -1, -1, -1, 3146 -1, -1, 1423, 446, 708, -1, 1014, 711, -1, -1, 3147 -1, 1019, 1020, -1, 1022, 1023, -1, 156, -1, -1, 3148 -1, 464, -1, -1, 1445, -1, 1472, 1473, -1, -1, 3149 -1, 1452, -1, -1, 1042, -1, -1, -1, -1, 482, 3150 -1, 484, 746, -1, -1, -1, -1, -1, 1390, 1391, 3151 -1, -1, -1, 1004, -1, -1, 10, 11, 12, 13, 3152 14, -1, 10, 11, 12, 13, 14, -1, -1, 1077, 3153 1078, -1, 431, -1, -1, -1, -1, -1, -1, -1, 3154 -1, -1, 1503, 526, -1, 39, 1428, 791, -1, -1, 3155 -1, 39, -1, -1, -1, -1, -1, 801, -1, 803, 3156 -1, -1, -1, -1, 808, -1, 1509, 811, -1, -1, 3157 -1, 815, 251, 67, 473, -1, 1124, 256, 72, 67, 3158 74, 75, 76, -1, 72, -1, 74, 75, 76, 83, 3159 84, -1, -1, -1, 1211, 83, 84, -1, -1, -1, 3160 -1, -1, 1150, -1, 1486, -1, -1, -1, 591, -1, 3161 -1, -1, -1, 1495, -1, 109, -1, 111, -1, -1, 3162 -1, 109, -1, 117, 118, -1, -1, -1, -1, 117, 3163 118, -1, 876, -1, -1, -1, -1, 72, -1, 74, 3164 75, 76, -1, -1, -1, 1193, -1, -1, 83, 84, 3165 -1, -1, 635, 636, 637, -1, -1, -1, -1, -1, 3166 -1, -1, 906, 1211, -1, -1, -1, 1215, -1, -1, 3167 653, -1, 351, -1, 109, -1, 111, -1, -1, 1227, 3168 -1, 1229, 117, 118, -1, 1233, 66, -1, 671, -1, 3169 1301, -1, -1, -1, -1, 75, 595, -1, -1, 682, 3170 -1, 1192, -1, -1, -1, -1, -1, -1, -1, -1, 3171 -1, 1259, -1, -1, -1, -1, -1, -1, -1, 1267, 3172 1268, 1269, -1, -1, 623, 708, -1, -1, 711, 628, 3173 1278, 1279, -1, -1, -1, -1, -1, 117, 0, 418, 3174 -1, -1, -1, -1, 1292, -1, -1, -1, -1, -1, 3175 -1, -1, -1, -1, 433, -1, -1, -1, -1, 438, 3176 -1, -1, -1, 746, 1381, -1, -1, 446, -1, -1, 3177 32, -1, -1, -1, -1, 1019, 1020, 1325, 1022, 1023, 3178 160, -1, -1, 1331, -1, 464, -1, -1, -1, -1, 3179 -1, -1, -1, -1, -1, -1, 1287, -1, 1042, -1, 3180 699, -1, -1, 482, -1, 484, -1, 69, 791, -1, 3181 -1, -1, -1, -1, 713, -1, -1, -1, 801, -1, 3182 803, -1, -1, -1, -1, 808, -1, -1, 811, -1, 3183 -1, -1, 815, 1077, 1078, -1, -1, -1, -1, -1, 3184 -1, 221, 1453, -1, 1455, -1, -1, 526, -1, -1, 3185 1398, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3186 53, -1, 55, -1, -1, 58, 59, 60, -1, 62, 3187 -1, -1, -1, -1, -1, 1423, -1, -1, 1489, 259, 3188 1491, 39, -1, 76, 264, -1, -1, -1, -1, -1, 3189 -1, -1, -1, 876, 156, 88, 89, 1445, -1, 279, 3190 -1, -1, -1, -1, 1452, -1, 1150, -1, 807, 67, 3191 -1, -1, 591, -1, 72, -1, 74, 75, 76, -1, 3192 -1, -1, 1533, 906, 1535, 83, 84, -1, -1, -1, 3193 -1, -1, -1, -1, -1, -1, -1, 1548, 1549, -1, 3194 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1193, 3195 -1, 109, -1, 111, -1, 1503, 635, 636, 637, 117, 3196 118, -1, 1510, -1, -1, -1, -1, -1, -1, -1, 3197 350, 1215, -1, -1, 653, -1, -1, -1, -1, -1, 3198 -1, -1, -1, 1227, -1, 1229, -1, -1, -1, 251, 3199 -1, -1, 671, -1, 256, -1, -1, -1, -1, -1, 3200 -1, -1, -1, 682, -1, -1, -1, -1, -1, 10, 3201 11, 12, 13, 14, -1, 1259, -1, -1, -1, -1, 3202 -1, -1, -1, 1267, 1268, 1269, -1, -1, -1, 708, 3203 -1, -1, 711, -1, 1278, 1279, 1019, 1020, 39, 1022, 3204 1023, -1, -1, -1, -1, -1, -1, -1, 1292, -1, 3205 -1, 431, -1, -1, -1, -1, -1, -1, -1, 1042, 3206 -1, -1, -1, -1, -1, -1, 67, 746, 448, -1, 3207 -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3208 -1, -1, 83, 84, -1, -1, -1, 1331, -1, 351, 3209 -1, -1, -1, 473, 1077, 1078, 26, 27, 28, -1, 3210 -1, -1, -1, -1, -1, 1004, -1, -1, 109, -1, 3211 -1, -1, 791, -1, -1, -1, 117, 118, -1, -1, 3212 -1, -1, 801, -1, 803, -1, -1, -1, -1, 808, 3213 -1, -1, 811, -1, -1, -1, 815, -1, 97, 98, 3214 99, 100, 101, 102, 103, 104, 105, 106, 107, -1, 3215 -1, 344, -1, 346, 1398, -1, 418, -1, -1, -1, 3216 -1, -1, -1, -1, 357, 358, -1, 1150, 98, -1, 3217 100, 433, 131, -1, -1, -1, 438, -1, -1, -1, 3218 -1, -1, -1, -1, 446, -1, -1, -1, -1, -1, 3219 -1, -1, -1, -1, -1, -1, -1, 876, -1, -1, 3220 -1, 1445, 464, -1, -1, -1, -1, -1, 1452, -1, 3221 1193, -1, -1, -1, -1, 595, -1, -1, -1, -1, 3222 482, -1, 484, -1, -1, -1, -1, 906, -1, -1, 3223 -1, -1, 1215, -1, -1, -1, -1, -1, -1, -1, 3224 -1, -1, -1, 623, 1227, -1, 1229, -1, 628, -1, 3225 -1, 181, -1, -1, -1, -1, -1, -1, -1, 1503, 3226 -1, 191, 192, -1, 526, -1, 196, -1, 198, 199, 3227 -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, 3228 -1, -1, -1, -1, 1267, 1268, 1269, -1, -1, -1, 3229 -1, -1, -1, 1192, -1, 1278, 1279, -1, -1, -1, 3230 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1292, 3231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 699, 3232 -1, -1, -1, -1, -1, -1, -1, -1, -1, 591, 3233 -1, -1, -1, 713, -1, -1, -1, -1, -1, -1, 3234 1019, 1020, -1, 1022, 1023, -1, -1, -1, 1331, -1, 3235 -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, 3236 -1, -1, -1, 1042, 7, -1, -1, 10, 11, 12, 3237 13, 14, -1, 635, 636, 637, -1, -1, -1, -1, 3238 -1, -1, -1, -1, -1, -1, -1, -1, 1287, -1, 3239 -1, 653, -1, -1, 37, 38, 39, 40, 1077, 1078, 3240 -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, 3241 -1, -1, -1, -1, -1, 1398, -1, -1, -1, -1, 3242 682, -1, -1, 66, 67, -1, -1, 807, -1, 72, 3243 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3244 83, 84, -1, 86, 87, -1, 708, -1, -1, 711, 3245 -1, -1, -1, 10, 11, 12, 13, 14, -1, -1, 3246 -1, -1, 1445, -1, -1, -1, 109, -1, 111, 1452, 3247 -1, 1150, -1, -1, 117, 118, 119, 120, 121, 122, 3248 -1, -1, 39, -1, 746, -1, -1, -1, -1, -1, 2888 0, 1, 186, 43, 239, 185, 204, 0, 43, 219, 2889 43, 116, 185, 521, 534, 185, 1, 875, 186, 0, 2890 1, 185, 757, 51, 647, 603, 750, 185, 0, 1, 2891 281, 621, 32, 750, 1041, 0, 1022, 43, 185, 32, 2892 345, 185, 750, 43, 168, 169, 513, 349, 875, 49, 2893 156, 32, 603, 32, 0, 693, 49, 349, 187, 0, 2894 32, 572, 57, 63, 601, 1322, 66, 32, 43, 69, 2895 63, 0, 1, 66, 696, 63, 69, 1399, 734, 492, 2896 0, 109, 266, 496, 69, 265, 32, 601, 69, 39, 2897 39, 32, 265, 490, 66, 265, 201, 69, 266, 601, 2898 39, 265, 43, 32, 604, 105, 601, 265, 49, 49, 2899 610, 106, 32, 113, 109, 418, 116, 117, 265, 82, 2900 66, 265, 63, 63, 39, 66, 66, 39, 69, 69, 2901 601, 984, 261, 262, 284, 438, 43, 66, 28, 601, 2902 69, 105, 72, 446, 132, 185, 146, 147, 1470, 601, 2903 185, 72, 185, 49, 147, 155, 156, 307, 308, 109, 2904 160, 111, 111, 1420, 39, 787, 82, 160, 72, 364, 2905 109, 39, 111, 368, 1021, 1022, 82, 482, 96, 185, 2906 688, 1034, 906, 1116, 156, 185, 186, 1120, 78, 906, 2907 156, 155, 0, 186, 110, 345, 488, 109, 906, 111, 2908 410, 201, 132, 96, 122, 111, 147, 147, 605, 209, 2909 185, 132, 609, 117, 1041, 64, 209, 113, 109, 160, 2910 160, 221, 406, 218, 32, 265, 109, 110, 221, 122, 2911 265, 381, 265, 630, 109, 256, 111, 634, 406, 239, 2912 1226, 109, 864, 111, 185, 186, 186, 825, 719, 221, 2913 146, 251, 987, 504, 57, 44, 45, 719, 251, 259, 2914 109, 426, 427, 901, 264, 265, 266, 719, 209, 209, 2915 251, 271, 251, 266, 825, 221, 813, 272, 185, 251, 2916 221, 221, 1289, 794, 279, 907, 251, 109, 696, 85, 2917 1276, 396, 221, 1502, 294, 49, 480, 636, 637, 813, 2918 109, 603, 925, 106, 1453, 251, 109, 307, 1053, 1054, 2919 251, 813, 480, 209, 653, 815, 621, 113, 813, 424, 2920 1529, 626, 251, 323, 265, 430, 115, 433, 328, 494, 2921 952, 251, 95, 44, 45, 328, 107, 112, 1487, 116, 2922 1489, 341, 813, 239, 109, 345, 111, 109, 513, 349, 2923 350, 813, 155, 348, 1212, 132, 934, 0, 110, 113, 2924 131, 813, 44, 45, 364, 987, 129, 1473, 368, 131, 2925 365, 371, 711, 1479, 369, 271, 116, 341, 130, 682, 2926 72, 11, 74, 75, 1129, 1212, 228, 328, 328, 32, 2927 130, 83, 84, 1499, 1050, 590, 396, 418, 1504, 114, 2928 550, 551, 552, 114, 350, 247, 406, 371, 349, 1395, 2929 1000, 307, 110, 406, 579, 218, 1038, 438, 116, 933, 2930 526, 109, 114, 111, 424, 446, 426, 427, 1275, 1276, 2931 430, 933, 114, 433, 72, 1442, 110, 632, 933, 110, 2932 72, 746, 1449, 251, 1502, 83, 84, 110, 256, 345, 2933 847, 83, 84, 116, 454, 209, 130, 119, 120, 130, 2934 968, 433, 1289, 802, 1522, 406, 406, 433, 110, 272, 2935 112, 1529, 472, 111, 116, 128, 279, 110, 131, 111, 2936 480, 116, 482, 116, 484, 591, 737, 480, 488, 131, 2937 132, 484, 70, 1500, 494, 73, 1118, 132, 76, 907, 2938 78, 90, 91, 484, 688, 1128, 506, 85, 508, 1009, 2939 1010, 511, 484, 513, 514, 982, 482, 271, 116, 484, 2940 688, 521, 1100, 825, 648, 525, 526, 473, 657, 942, 2941 426, 427, 130, 825, 1387, 1388, 125, 126, 484, 109, 2942 294, 111, 939, 484, 952, 348, 110, 488, 1395, 116, 2943 655, 116, 116, 307, 526, 484, 1178, 1179, 72, 116, 2944 526, 525, 365, 130, 484, 72, 369, 74, 75, 83, 2945 84, 571, 572, 88, 89, 132, 83, 84, 1086, 579, 2946 1403, 72, 3, 1091, 4, 5, 6, 7, 8, 9, 2947 590, 591, 83, 84, 72, 595, 116, 111, 494, 3, 2948 905, 601, 1, 603, 111, 83, 84, 757, 251, 804, 2949 418, 116, 132, 256, 809, 1442, 0, 513, 110, 591, 2950 111, 621, 1449, 0, 116, 591, 626, 622, 628, 432, 2951 438, 109, 632, 1289, 212, 635, 636, 637, 446, 111, 2952 111, 113, 113, 638, 112, 109, 938, 111, 116, 69, 2953 116, 71, 862, 653, 116, 655, 109, 652, 130, 130, 2954 601, 682, 603, 635, 636, 637, 132, 109, 116, 111, 2955 132, 591, 882, 1500, 1497, 116, 484, 623, 116, 1502, 2956 116, 653, 131, 579, 132, 685, 72, 708, 688, 116, 2957 76, 132, 116, 109, 132, 1000, 132, 83, 84, 1522, 2958 454, 279, 897, 72, 810, 132, 1529, 1363, 132, 944, 2959 1118, 711, 712, 713, 83, 84, 110, 109, 116, 719, 2960 720, 116, 116, 109, 908, 621, 906, 92, 93, 110, 2961 626, 117, 118, 906, 132, 116, 906, 132, 733, 711, 2962 908, 109, 906, 110, 868, 745, 746, 688, 906, 116, 2963 750, 751, 506, 699, 508, 109, 109, 511, 111, 906, 2964 514, 1383, 906, 110, 117, 118, 294, 713, 112, 116, 2965 1178, 1179, 116, 109, 352, 418, 354, 1399, 719, 720, 2966 746, 745, 1506, 109, 112, 111, 1306, 590, 116, 1506, 2967 1446, 109, 1448, 111, 794, 438, 109, 112, 1506, 117, 2968 118, 116, 802, 446, 804, 72, 806, 74, 75, 809, 2969 810, 110, 109, 813, 111, 1013, 83, 84, 110, 622, 2970 117, 118, 72, 110, 116, 825, 76, 110, 112, 116, 2971 802, 110, 116, 83, 84, 638, 110, 116, 810, 482, 2972 110, 484, 1147, 112, 810, 1501, 116, 1469, 1470, 652, 2973 1000, 115, 116, 252, 10, 11, 12, 13, 14, 109, 2974 806, 111, 110, 111, 442, 1116, 109, 117, 118, 1120, 2975 1121, 110, 813, 117, 682, 875, 110, 116, 3, 123, 2976 124, 110, 116, 39, 825, 10, 11, 12, 13, 14, 2977 810, 1041, 58, 59, 875, 110, 110, 897, 426, 427, 2978 708, 116, 1086, 875, 904, 905, 906, 1091, 908, 110, 2979 110, 67, 1036, 109, 39, 72, 116, 115, 1086, 76, 2980 920, 1226, 109, 1091, 111, 109, 83, 84, 1123, 875, 2981 733, 685, 64, 933, 934, 110, 115, 116, 938, 905, 2982 904, 116, 67, 943, 944, 72, 875, 74, 75, 76, 2983 0, 1, 109, 44, 45, 875, 83, 84, 943, 132, 2984 117, 118, 943, 110, 66, 906, 109, 908, 968, 116, 2985 109, 943, 111, 109, 1482, 1383, 553, 554, 506, 29, 2986 30, 112, 32, 511, 132, 1236, 514, 506, 109, 508, 2987 111, 1399, 511, 43, 911, 514, 913, 938, 114, 49, 2988 1000, 555, 556, 1108, 114, 114, 72, 57, 74, 75, 2989 76, 561, 562, 63, 943, 117, 66, 83, 84, 69, 2990 132, 1021, 1022, 1531, 132, 4, 5, 6, 7, 8, 2991 9, 109, 82, 83, 557, 558, 559, 560, 82, 682, 2992 568, 1041, 4, 5, 6, 7, 8, 9, 944, 1021, 2993 1022, 85, 86, 87, 109, 1021, 106, 1003, 160, 109, 2994 1041, 1469, 1470, 109, 112, 708, 116, 875, 467, 1041, 2995 82, 33, 1323, 118, 127, 109, 1327, 111, 94, 113, 2996 114, 1081, 109, 110, 111, 128, 1086, 109, 110, 111, 2997 69, 1091, 71, 131, 897, 1041, 111, 147, 109, 109, 2998 1100, 110, 110, 746, 1000, 155, 3, 69, 1108, 71, 2999 160, 112, 1041, 10, 11, 12, 13, 14, 112, 221, 3000 112, 1041, 110, 1123, 109, 110, 111, 110, 110, 528, 3001 110, 109, 110, 111, 533, 185, 186, 72, 109, 74, 3002 75, 76, 39, 112, 111, 1086, 114, 1147, 83, 84, 3003 1091, 201, 116, 132, 131, 733, 114, 259, 114, 209, 3004 109, 112, 264, 58, 59, 60, 920, 110, 218, 110, 3005 67, 221, 112, 1424, 109, 112, 111, 130, 228, 112, 3006 112, 1147, 117, 118, 583, 1249, 1250, 1251, 130, 1189, 3007 1190, 130, 116, 243, 29, 130, 110, 247, 110, 112, 3008 115, 251, 252, 114, 112, 1190, 110, 116, 1208, 1190, 3009 115, 109, 1212, 115, 110, 265, 266, 1189, 1190, 110, 3010 130, 110, 272, 116, 110, 132, 1226, 3, 110, 279, 3011 1230, 1212, 875, 1041, 10, 11, 12, 13, 14, 110, 3012 1212, 116, 110, 1189, 1208, 1230, 110, 110, 350, 1230, 3013 110, 110, 110, 110, 1, 654, 110, 656, 1230, 110, 3014 1189, 1190, 905, 39, 110, 110, 1212, 110, 72, 110, 3015 74, 75, 76, 115, 1379, 1275, 1276, 29, 328, 83, 3016 84, 1516, 131, 1212, 1284, 110, 130, 116, 875, 1289, 3017 112, 67, 1212, 112, 110, 110, 116, 110, 348, 349, 3018 130, 1230, 49, 1275, 1276, 109, 109, 706, 1289, 1275, 3019 116, 112, 1284, 117, 118, 365, 114, 1289, 110, 369, 3020 110, 110, 1322, 1507, 112, 116, 1506, 1081, 110, 431, 3021 380, 116, 116, 1506, 55, 110, 1506, 1322, 1284, 1507, 3022 110, 1322, 1506, 1289, 112, 109, 396, 1531, 1506, 109, 3023 1322, 109, 109, 109, 132, 1284, 406, 130, 105, 1506, 3024 1289, 112, 1506, 1531, 110, 115, 113, 110, 110, 1289, 3025 115, 473, 110, 128, 424, 115, 97, 1482, 114, 1379, 3026 430, 112, 432, 1378, 132, 112, 116, 112, 110, 72, 3027 110, 74, 75, 1322, 110, 1395, 110, 112, 1041, 146, 3028 83, 84, 112, 112, 1212, 1208, 112, 72, 155, 74, 3029 75, 76, 112, 72, 112, 74, 75, 467, 83, 84, 3030 1420, 47, 472, 1395, 83, 84, 109, 132, 132, 132, 3031 480, 114, 112, 132, 484, 1420, 132, 115, 488, 1420, 3032 110, 491, 1442, 493, 109, 130, 115, 110, 1420, 1449, 3033 109, 1451, 112, 1453, 115, 114, 112, 1044, 205, 112, 3034 112, 1442, 209, 112, 110, 110, 1506, 109, 1449, 112, 3035 1442, 1506, 193, 1506, 112, 109, 109, 1449, 528, 60, 3036 110, 1289, 1482, 533, 132, 110, 114, 1487, 109, 1489, 3037 112, 1420, 239, 595, 112, 216, 1442, 110, 112, 110, 3038 1500, 96, 96, 1449, 1147, 226, 1506, 1507, 109, 109, 3039 464, 115, 132, 1442, 1507, 130, 1516, 110, 110, 1500, 3040 1449, 623, 1442, 110, 271, 110, 628, 274, 1500, 1449, 3041 116, 1531, 42, 583, 132, 132, 110, 110, 1531, 66, 3042 590, 96, 96, 132, 110, 110, 110, 294, 75, 132, 3043 132, 601, 110, 603, 1500, 115, 112, 132, 115, 958, 3044 307, 112, 109, 132, 110, 1506, 30, 115, 110, 1212, 3045 132, 1500, 622, 294, 110, 1378, 110, 667, 1057, 563, 3046 1500, 980, 978, 1226, 565, 984, 1212, 1365, 638, 564, 3047 117, 464, 566, 643, 341, 567, 1470, 699, 345, 1541, 3048 1299, 1327, 652, 1121, 654, 655, 656, 1072, 1449, 685, 3049 685, 713, 913, 698, 66, 1091, 921, 364, 82, 83, 3050 1516, 368, 583, 972, 371, 1212, 868, 723, 649, 940, 3051 82, 1230, 484, 160, 1442, 1034, 0, 1, 688, 733, 3052 571, 1449, 692, 571, 694, 571, 1289, 72, 698, 74, 3053 75, 76, -1, -1, -1, -1, 706, -1, 83, 84, 3054 -1, -1, -1, 1191, 1192, 117, 1194, -1, 32, 719, 3055 720, -1, -1, 1201, -1, 1203, -1, -1, -1, 426, 3056 427, -1, -1, 733, 109, 49, -1, 10, 11, 12, 3057 13, 14, 1500, -1, 221, -1, -1, 1451, -1, 1453, 3058 -1, -1, -1, -1, 806, 69, -1, 454, 160, -1, 3059 85, 86, 87, -1, -1, -1, 39, 671, 1305, -1, 3060 467, -1, 443, -1, -1, -1, -1, 10, 11, 12, 3061 13, 14, 259, 1487, 109, 1489, 111, 264, 113, 114, 3062 -1, 105, -1, -1, 67, 492, -1, 494, 469, 496, 3063 -1, -1, 279, -1, -1, -1, 39, -1, -1, 506, 3064 -1, 508, -1, 813, 511, -1, 513, 514, -1, 221, 3065 1357, -1, -1, 1360, -1, 825, -1, -1, 525, 243, 3066 -1, -1, -1, 147, 67, 506, 109, -1, 111, -1, 3067 511, 155, 156, 514, 117, 118, -1, -1, 671, 1442, 3068 -1, -1, -1, -1, -1, -1, 1449, 259, -1, -1, 3069 -1, -1, 264, -1, -1, -1, 1403, -1, 868, -1, 3070 -1, 1408, 186, 350, 874, -1, 109, -1, 111, -1, 3071 -1, 1359, 579, -1, 117, 118, 790, 201, -1, -1, 3072 204, 205, -1, 590, -1, 209, 800, 897, -1, 1436, 3073 1249, 1250, 1251, -1, -1, -1, 906, 1500, 908, -1, 3074 814, -1, -1, -1, -1, 915, 230, -1, -1, -1, 3075 234, -1, 236, -1, 621, -1, -1, -1, -1, 626, 3076 -1, 245, -1, -1, -1, 632, 0, 251, 938, -1, 3077 -1, -1, 256, -1, -1, -1, -1, -1, 350, -1, 3078 -1, 1003, 266, -1, 431, -1, -1, -1, 958, -1, 3079 274, 10, 11, 12, 13, 14, 380, 790, 32, -1, 3080 -1, 448, 972, -1, -1, -1, -1, 800, -1, -1, 3081 980, -1, -1, 1520, 984, -1, -1, -1, 685, 1526, 3082 39, 814, -1, -1, -1, -1, 473, -1, -1, 670, 3083 1537, -1, 671, -1, 1541, 69, -1, -1, 679, -1, 3084 -1, -1, 683, -1, -1, -1, -1, -1, 67, -1, 3085 -1, 72, -1, 74, 75, 76, 723, 341, -1, 431, 3086 -1, 345, 83, 84, 1034, -1, -1, 351, 1387, 1388, 3087 -1, -1, -1, -1, -1, -1, -1, -1, 745, -1, 3088 364, -1, -1, -1, 368, -1, -1, 371, 109, -1, 3089 109, -1, 111, -1, -1, -1, 117, 118, 117, 118, 3090 -1, 473, 1072, -1, -1, -1, 1425, 491, -1, 493, 3091 -1, -1, -1, -1, -1, -1, 1086, -1, -1, -1, 3092 -1, 1091, 156, 97, 98, 99, 100, 101, 102, 103, 3093 104, 105, 106, 107, 418, -1, -1, 804, 1108, -1, 3094 -1, -1, 809, -1, 1018, 1019, -1, -1, 595, 433, 3095 -1, 790, -1, -1, 438, -1, -1, 131, -1, -1, 3096 -1, 800, 446, -1, 1483, -1, -1, 1189, -1, -1, 3097 -1, -1, -1, 1492, -1, 814, 623, -1, -1, -1, 3098 464, 628, 72, 467, 74, 75, 76, -1, -1, -1, 3099 -1, -1, -1, 83, 84, -1, 230, -1, 482, -1, 3100 484, -1, 1076, 1077, -1, -1, -1, -1, 492, -1, 3101 -1, -1, 496, -1, -1, 1185, -1, 251, -1, 109, 3102 -1, 111, 256, 595, -1, 1018, 1019, 117, 118, -1, 3103 897, -1, -1, -1, -1, -1, -1, 904, 1208, -1, 3104 -1, 525, 526, -1, -1, -1, -1, -1, -1, -1, 3105 -1, 623, 699, 920, -1, -1, 628, -1, 899, 643, 3106 -1, -1, 1284, 0, -1, -1, 713, -1, -1, -1, 3107 -1, -1, -1, -1, -1, 942, 943, 944, -1, 1249, 3108 1250, 1251, -1, 1076, 1077, -1, 733, -1, 572, 72, 3109 -1, 74, 75, 76, -1, 32, -1, -1, -1, -1, 3110 83, 84, -1, -1, -1, -1, 590, 591, 692, -1, 3111 694, -1, -1, -1, 698, -1, -1, 351, 72, 603, 3112 74, 75, 76, -1, -1, -1, 109, 699, 111, 83, 3113 84, -1, 69, 1000, 117, 118, -1, 621, -1, -1, 3114 -1, 713, 626, -1, -1, -1, -1, -1, 632, -1, 3115 1224, 635, 636, 637, -1, 109, -1, 111, -1, 806, 3116 -1, -1, -1, 117, 118, -1, -1, -1, -1, 653, 3117 -1, -1, -1, 26, 27, 28, -1, -1, -1, 1018, 3118 1019, -1, 1256, -1, 418, -1, -1, 671, -1, -1, 3119 1264, 1265, 1266, -1, -1, -1, -1, -1, 682, 433, 3120 -1, -1, -1, -1, 438, -1, -1, -1, 1378, 1379, 3121 -1, 1052, 446, -1, 1081, -1, -1, 1387, 1388, 156, 3122 -1, -1, -1, -1, 708, -1, -1, 711, -1, -1, 3123 464, 1224, -1, -1, 806, -1, 720, 1076, 1077, 723, 3124 -1, -1, -1, -1, -1, 98, -1, 100, 482, -1, 3125 484, -1, -1, -1, 1328, 1425, 1123, -1, -1, -1, 3126 -1, 745, 746, 1256, -1, -1, -1, 751, -1, -1, 3127 -1, 1264, 1265, 1266, -1, -1, -1, -1, -1, -1, 3128 -1, -1, -1, -1, 868, -1, -1, -1, -1, -1, 3129 874, -1, 526, -1, -1, -1, -1, 26, 27, 28, 3130 -1, -1, -1, -1, -1, -1, 790, -1, -1, -1, 3131 -1, -1, 1482, 1483, 251, -1, 800, -1, 802, 256, 3132 804, -1, 1492, 807, -1, 809, 810, -1, 181, -1, 3133 814, 915, -1, -1, -1, 1328, 1506, 1507, 191, 192, 3134 824, 1208, -1, 196, -1, 198, 199, -1, -1, -1, 3135 -1, -1, -1, -1, -1, -1, 1003, 591, -1, -1, 3136 -1, 1531, -1, 1230, -1, -1, -1, -1, -1, 98, 3137 -1, 100, -1, -1, -1, 0, -1, -1, -1, -1, 3138 -1, -1, -1, -1, -1, -1, -1, -1, 972, -1, 3139 -1, 875, -1, -1, -1, -1, 125, -1, -1, -1, 3140 -1, 635, 636, 637, -1, -1, -1, 32, -1, -1, 3141 -1, -1, -1, 897, 351, -1, -1, 1256, -1, 653, 3142 904, 905, -1, -1, 908, 1264, 1265, 1266, -1, -1, 3143 -1, 1003, -1, -1, -1, -1, -1, 671, -1, -1, 3144 -1, -1, -1, -1, 69, -1, -1, -1, 682, -1, 3145 934, -1, 181, -1, -1, 1322, -1, 1298, 942, 943, 3146 189, -1, 191, 192, -1, -1, -1, 196, -1, 198, 3147 199, -1, -1, -1, 708, -1, -1, 711, -1, -1, 3148 -1, 418, -1, -1, -1, -1, -1, -1, 1072, 1328, 3149 -1, -1, -1, -1, -1, -1, 433, -1, -1, -1, 3150 -1, 438, -1, -1, -1, -1, -1, -1, -1, 446, 3151 -1, -1, 746, -1, -1, -1, 1000, 10, 11, 12, 3152 13, 14, -1, -1, -1, -1, -1, 464, -1, 1013, 3153 -1, 156, -1, -1, 1018, 1019, -1, 1021, 1022, 268, 3154 -1, -1, 1189, -1, -1, 482, 39, 484, -1, -1, 3155 -1, -1, -1, 1420, -1, -1, 790, 1041, -1, -1, 3156 -1, -1, -1, -1, -1, -1, 800, -1, 802, -1, 3157 -1, -1, -1, 807, 67, -1, 810, -1, -1, 72, 3158 814, 74, 75, 76, 1451, -1, 1453, -1, -1, 526, 3159 83, 84, 1076, 1077, -1, -1, -1, -1, -1, -1, 3160 -1, 1185, -1, -1, -1, -1, -1, -1, -1, 1450, 3161 -1, 1452, -1, -1, -1, -1, 109, 1189, 111, -1, 3162 1487, -1, 1489, -1, 117, 118, 251, -1, -1, -1, 3163 -1, 256, -1, -1, -1, -1, -1, 1284, -1, 1123, 3164 -1, 875, -1, -1, -1, 1486, -1, 1488, -1, 1516, 3165 -1, -1, -1, -1, 591, -1, -1, -1, -1, -1, 3166 -1, -1, -1, 1147, -1, -1, -1, -1, -1, 0, 3167 -1, 905, -1, -1, -1, -1, -1, 189, -1, -1, 3168 -1, -1, -1, -1, 196, -1, -1, -1, -1, 1530, 3169 -1, 1532, -1, -1, -1, -1, -1, -1, 635, 636, 3170 637, 32, -1, -1, 1545, 1546, 1190, -1, -1, -1, 3171 -1, -1, 1284, -1, -1, -1, 653, -1, -1, -1, 3172 -1, -1, 575, 576, 1208, -1, 351, -1, 1212, -1, 3173 -1, -1, -1, -1, 671, -1, -1, -1, 69, -1, 3174 1224, -1, 1226, -1, -1, 682, 1230, -1, -1, -1, 3175 -1, 604, -1, -1, 607, 608, 268, 610, -1, 612, 3176 613, -1, -1, -1, 617, 618, -1, -1, -1, -1, 3177 -1, 708, 1256, -1, 711, -1, -1, -1, -1, -1, 3178 1264, 1265, 1266, -1, 1018, 1019, -1, 1021, 1022, -1, 3179 -1, 1275, 1276, 418, -1, -1, -1, -1, 10, 11, 3180 12, 13, 14, -1, -1, 1289, -1, 1041, 433, 746, 3181 -1, 323, -1, 438, -1, -1, -1, -1, -1, 331, 3182 -1, 446, 334, -1, -1, 156, -1, 39, -1, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 1322, 464, 3184 -1, -1, 1076, 1077, 1328, -1, 575, 576, -1, -1, 3185 -1, -1, -1, 790, -1, 67, -1, 482, -1, 484, 3186 72, -1, -1, 800, 76, 802, -1, -1, -1, -1, 3187 807, 83, 84, 810, -1, 604, -1, 814, 607, 608, 3188 -1, 610, -1, 612, 613, -1, 398, -1, 617, 618, 3189 402, -1, -1, -1, -1, -1, -1, 109, -1, -1, 3190 -1, 526, 755, 756, -1, 117, 118, -1, -1, -1, 3191 -1, 1395, -1, 1147, -1, -1, -1, -1, -1, -1, 3192 251, -1, -1, -1, -1, 256, -1, -1, -1, -1, 3193 -1, -1, -1, -1, -1, -1, 1420, -1, 875, -1, 3249 3194 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3250 -1, -1, -1, -1, -1, -1, -1, 700, -1, 702, 3251 67, -1, -1, -1, 1193, 72, 709, 710, -1, 76, 3252 1503, 714, -1, -1, -1, -1, 83, 84, -1, 791, 3253 -1, -1, -1, 726, -1, -1, 1215, -1, 731, 801, 3254 -1, 803, -1, -1, -1, -1, 808, -1, 1227, 811, 3255 1229, -1, 109, 815, -1, -1, -1, -1, -1, -1, 3256 117, 118, -1, -1, -1, -1, 759, -1, -1, -1, 3195 -1, -1, -1, -1, -1, -1, 1190, -1, 1442, -1, 3196 -1, -1, -1, -1, -1, 1449, 591, 479, 905, -1, 3197 -1, -1, -1, -1, -1, -1, -1, -1, 1212, -1, 3257 3198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3258 1259, -1, -1, -1, -1, -1, -1, -1, 1267, 1268, 3259 1269, -1, -1, -1, -1, -1, -1, -1, -1, 1278, 3260 1279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, 1292, 876, -1, -1, -1, -1, -1, 3262 -1, -1, -1, -1, 1004, -1, -1, -1, -1, -1, 3263 -1, -1, 7, -1, -1, 10, 11, 12, 13, 14, 3264 -1, -1, -1, -1, 906, 575, 576, -1, -1, -1, 3265 -1, -1, 1331, -1, -1, -1, -1, -1, 49, -1, 3266 -1, -1, 37, 38, 39, 40, 859, 860, 861, 862, 3267 -1, 864, -1, -1, 604, 66, -1, 607, 608, -1, 3268 610, -1, 612, 613, -1, -1, 879, 617, 618, -1, 3269 -1, 66, 67, -1, -1, -1, -1, 72, -1, -1, 3270 893, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3271 -1, 86, 87, -1, -1, -1, -1, -1, -1, 1398, 3272 -1, -1, 113, -1, -1, -1, 117, -1, -1, -1, 3273 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3274 933, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3275 -1, -1, -1, -1, -1, 146, -1, 1019, 1020, -1, 3276 1022, 1023, -1, -1, -1, 156, 1445, -1, -1, 160, 3277 -1, -1, -1, 1452, -1, -1, -1, -1, -1, -1, 3278 1042, -1, -1, -1, -1, 978, -1, -1, -1, -1, 3279 -1, 984, -1, -1, -1, -1, 989, -1, -1, -1, 3280 -1, 994, -1, 996, -1, -1, -1, 1000, -1, 1002, 3281 1003, -1, 1192, 1006, -1, 1077, 1078, -1, 209, -1, 3282 -1, -1, 1015, -1, 1503, 755, 756, -1, -1, -1, 3283 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3284 1033, 1034, -1, -1, -1, -1, -1, -1, 239, 10, 3285 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3286 21, 22, 23, 24, 25, 26, 27, 1060, -1, -1, 3287 1063, -1, -1, 264, -1, -1, -1, -1, 39, -1, 3288 271, -1, -1, -1, -1, -1, -1, -1, 1150, -1, 3289 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1, 3290 -1, -1, -1, 294, -1, -1, 67, 1287, -1, -1, 3291 -1, -1, -1, 1106, -1, -1, 307, -1, -1, 1112, 3292 1113, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3293 -1, 1193, -1, -1, -1, -1, -1, -1, -1, 1132, 3294 -1, -1, -1, 1136, -1, -1, -1, -1, 1141, -1, 3295 -1, -1, -1, 1215, 345, -1, -1, -1, -1, 350, 3296 -1, 1154, -1, -1, 98, 1227, 100, 1229, -1, -1, 3297 -1, -1, -1, -1, 1167, -1, 1169, 1170, 1171, 1172, 3298 -1, -1, -1, -1, -1, -1, -1, -1, 918, -1, 3299 -1, 125, 1185, -1, 1187, -1, -1, 1259, 1191, -1, 3300 -1, -1, -1, -1, -1, 1267, 1268, 1269, -1, -1, 3301 -1, -1, -1, -1, -1, -1, 1278, 1279, -1, -1, 3302 66, -1, -1, -1, -1, -1, -1, 1220, 1221, 75, 3303 1292, 77, -1, 79, -1, 426, 427, -1, -1, -1, 3304 86, -1, 433, -1, -1, -1, -1, 181, -1, -1, 3305 -1, -1, -1, -1, -1, 189, -1, 191, 192, -1, 3306 -1, -1, 196, 454, 198, 199, -1, -1, -1, 1331, 3307 -1, 117, -1, 119, 120, 121, -1, 1270, 1271, -1, 3308 -1, -1, -1, -1, -1, -1, -1, 1280, -1, -1, 3309 -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, 3310 -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, 3311 -1, -1, -1, -1, 160, 506, -1, 508, -1, -1, 3312 511, -1, 513, 514, -1, -1, -1, -1, -1, -1, 3313 -1, -1, -1, -1, 268, 526, 1398, -1, -1, -1, 3314 -1, -1, -1, -1, -1, -1, -1, -1, 1341, 1079, 3315 1343, 1344, 1345, -1, -1, -1, -1, -1, -1, -1, 3316 -1, -1, 1355, -1, -1, -1, -1, -1, -1, -1, 3317 -1, 1364, -1, -1, -1, 221, -1, 223, 224, 225, 3318 -1, -1, -1, 1445, -1, -1, -1, -1, 579, -1, 3319 1452, -1, -1, -1, -1, -1, 1389, -1, -1, -1, 3320 591, -1, -1, -1, 595, -1, -1, -1, -1, -1, 3321 -1, -1, -1, 259, -1, -1, -1, -1, 264, -1, 3322 -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 3323 621, -1, -1, 279, -1, 626, -1, -1, -1, 1432, 3324 1433, 1503, -1, -1, 635, 636, 637, -1, -1, -1, 3325 -1, -1, 1445, -1, -1, -1, -1, -1, -1, 1452, 3326 -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, 3327 -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, 3328 1210, 101, 328, -1, -1, -1, -1, -1, -1, -1, 3329 -1, 1484, -1, -1, 685, 1488, -1, -1, -1, -1, 3330 -1, -1, -1, -1, 350, -1, -1, -1, -1, 355, 3331 356, -1, -1, -1, -1, -1, -1, 363, -1, -1, 3332 711, -1, 713, 1516, -1, 1518, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, 3199 1224, -1, 1226, -1, -1, -1, -1, -1, -1, -1, 3200 -1, -1, -1, -1, 10, 11, 12, 13, 14, -1, 3201 635, 636, 637, -1, -1, -1, 1500, -1, -1, -1, 3202 351, -1, 1256, 1507, -1, -1, 755, 756, 653, -1, 3203 1264, 1265, 1266, 39, -1, -1, -1, -1, -1, -1, 3204 -1, 1275, 1276, -1, -1, -1, 671, -1, -1, -1, 3205 -1, -1, -1, -1, -1, 1289, -1, 682, -1, 571, 3206 572, 67, -1, -1, 917, -1, 72, -1, 74, 75, 3207 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3208 -1, 1018, 1019, 708, 1021, 1022, 711, 418, -1, -1, 3209 -1, -1, -1, -1, 1328, -1, -1, -1, -1, -1, 3210 -1, -1, 433, 109, 1041, 111, -1, 438, -1, -1, 3211 -1, 117, 118, -1, -1, 446, -1, -1, -1, -1, 3212 -1, 746, -1, -1, -1, -1, -1, -1, -1, -1, 3213 -1, -1, -1, 464, -1, -1, -1, -1, -1, 1076, 3214 1077, -1, -1, -1, -1, -1, 658, -1, -1, -1, 3215 662, 482, -1, 484, -1, -1, -1, -1, -1, -1, 3216 -1, 1395, -1, -1, -1, 790, -1, -1, -1, -1, 3217 -1, -1, -1, -1, -1, 800, -1, 802, -1, -1, 3218 -1, -1, 807, 912, -1, 810, -1, -1, 917, 814, 3219 -1, -1, -1, -1, -1, 526, 53, -1, 55, -1, 3220 -1, 58, 59, 60, -1, 62, -1, -1, 1442, -1, 3221 1147, -1, -1, -1, -1, 1449, -1, -1, -1, 76, 3222 -1, -1, -1, -1, -1, 1078, -1, -1, -1, -1, 3223 -1, 88, 89, -1, 10, 11, 12, 13, 14, -1, 3334 3224 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, 171, -1, 1546, 1547, 746, -1, -1, -1, -1, 3336 406, 1554, 1555, -1, -1, -1, -1, -1, -1, -1, 3337 -1, -1, -1, -1, 194, -1, -1, -1, 424, 37, 3338 38, -1, 40, 429, -1, 431, -1, -1, 208, -1, 3339 -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, 3340 -1, -1, 448, -1, -1, 451, 452, 227, 66, -1, 3341 -1, -1, 803, 459, 72, -1, 807, -1, 76, -1, 3342 811, 79, 80, 81, 82, 83, 84, 473, 86, 87, 3343 -1, -1, 252, -1, 480, -1, -1, 257, -1, -1, 3344 -1, 575, 576, -1, -1, -1, -1, -1, -1, -1, 3345 270, 109, -1, 111, -1, -1, 276, -1, 278, 117, 3346 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3347 604, -1, 130, 607, 608, 295, 610, -1, 612, 613, 3348 -1, -1, -1, 617, 618, 10, 11, 12, 13, 14, 3225 875, -1, -1, 1190, -1, -1, -1, -1, -1, -1, 3226 591, -1, -1, 39, -1, -1, 1500, -1, -1, -1, 3227 -1, -1, -1, -1, -1, 1212, -1, -1, -1, -1, 3228 905, -1, 794, -1, -1, -1, -1, 1224, -1, 1226, 3229 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3230 76, -1, -1, -1, 635, 636, 637, 83, 84, -1, 3231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1256, 3232 -1, -1, 653, -1, -1, -1, -1, 1264, 1265, 1266, 3233 -1, -1, -1, 109, -1, 111, -1, -1, 1275, 1276, 3234 671, 117, 118, -1, -1, 282, -1, 284, 285, 1078, 3235 -1, 682, 1289, -1, 1207, 292, 293, -1, -1, -1, 3236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3237 307, 308, -1, -1, -1, -1, -1, 708, -1, -1, 3238 711, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239 -1, 1328, -1, 1018, 1019, -1, 1021, 1022, -1, -1, 3240 912, -1, -1, -1, -1, -1, -1, -1, 345, -1, 3241 -1, -1, -1, -1, -1, 746, 1041, 10, 11, 12, 3242 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3243 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, 3244 -1, -1, -1, -1, 381, -1, 39, -1, -1, -1, 3245 -1, 1076, 1077, -1, -1, -1, -1, -1, 1395, 790, 3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, 800, 3247 -1, 802, -1, -1, 67, -1, 807, 989, 1207, 810, 3248 -1, 74, 75, 814, -1, 78, -1, 344, -1, 346, 3249 -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, 3250 357, 358, -1, -1, -1, 1442, -1, -1, -1, -1, 3251 37, 38, 1449, 40, -1, -1, 109, -1, 111, -1, 3252 -1, -1, 1147, -1, 117, 118, -1, -1, -1, -1, 3253 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3254 -1, -1, -1, -1, 875, 72, -1, -1, -1, 76, 3255 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3256 87, -1, -1, 1500, -1, 1190, -1, -1, -1, -1, 3257 -1, -1, 1084, -1, 905, -1, -1, -1, -1, -1, 3258 -1, -1, 109, -1, 111, -1, -1, 1212, -1, -1, 3259 117, 118, 119, 120, 121, 122, -1, -1, -1, 1224, 3260 -1, 1226, 7, 130, -1, 10, 11, 12, 13, 14, 3261 -1, -1, 1124, 550, 551, 552, 553, 554, 555, 556, 3262 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 3263 567, 1256, 37, 38, 39, 40, -1, -1, -1, 1264, 3264 1265, 1266, -1, -1, -1, -1, -1, -1, -1, -1, 3265 1275, 1276, -1, -1, -1, -1, -1, -1, -1, -1, 3266 -1, 66, 67, -1, 1289, -1, -1, 72, -1, -1, 3267 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3268 -1, 86, 87, -1, -1, -1, -1, 1018, 1019, -1, 3269 1021, 1022, -1, -1, -1, -1, -1, -1, -1, -1, 3270 -1, -1, -1, 1328, 109, -1, 111, -1, -1, -1, 3271 1041, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3272 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3273 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3274 23, 24, 25, 26, 27, 1076, 1077, 30, 31, 32, 3275 33, -1, -1, 36, 37, 38, 39, 40, -1, 696, 3276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3277 1395, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278 -1, -1, -1, 66, 67, -1, 69, -1, 71, 72, 3279 -1, 74, 75, 76, 49, -1, 79, 80, 81, 82, 3280 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3281 -1, 66, -1, -1, -1, -1, 1147, 1442, -1, -1, 3282 757, -1, -1, -1, 1449, -1, 109, -1, 111, -1, 3283 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3284 -1, -1, -1, 700, -1, 702, -1, -1, -1, 132, 3285 787, -1, 709, 710, -1, -1, -1, 714, 113, 1190, 3286 -1, -1, 117, -1, -1, -1, -1, -1, -1, 726, 3287 -1, -1, -1, -1, 731, 1500, -1, -1, -1, -1, 3288 -1, 1212, -1, -1, -1, -1, -1, -1, -1, -1, 3289 -1, 146, -1, 1224, -1, 1226, -1, -1, -1, -1, 3290 -1, 156, 759, -1, -1, 160, -1, -1, -1, -1, 3291 -1, -1, -1, -1, -1, -1, 7, -1, -1, 10, 3292 11, 12, 13, 14, -1, 1256, -1, -1, -1, -1, 3293 -1, -1, -1, 1264, 1265, 1266, -1, -1, -1, -1, 3294 -1, -1, -1, -1, 1275, 1276, 37, 38, 39, 40, 3295 -1, -1, -1, -1, 209, -1, -1, -1, 1289, -1, 3296 -1, -1, -1, -1, -1, -1, 221, -1, -1, -1, 3297 907, -1, -1, -1, -1, 66, 67, -1, -1, -1, 3298 -1, 72, -1, -1, 239, 76, -1, -1, 79, 80, 3299 81, 82, 83, 84, -1, 86, 87, 1328, -1, -1, 3300 -1, 858, 859, 860, 861, -1, 863, -1, -1, 264, 3301 -1, -1, -1, -1, -1, 952, 271, -1, 109, -1, 3302 111, 878, -1, -1, -1, -1, 117, 118, 119, 120, 3303 121, 122, -1, -1, -1, 892, -1, -1, -1, 294, 3304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3305 987, -1, 307, -1, -1, -1, -1, -1, -1, 66, 3306 -1, -1, -1, 1000, 1395, -1, -1, -1, 75, -1, 3307 77, -1, 79, -1, -1, 932, -1, -1, -1, 86, 3308 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3309 345, -1, -1, -1, -1, 350, -1, -1, -1, -1, 3310 -1, -1, -1, -1, 1041, -1, -1, -1, -1, -1, 3311 117, 1442, 119, 120, 121, -1, -1, -1, 1449, -1, 3312 977, -1, -1, -1, -1, -1, 983, -1, -1, -1, 3313 -1, 988, -1, -1, -1, -1, 993, -1, 995, -1, 3314 -1, -1, 999, -1, 1001, 1002, -1, -1, 1005, -1, 3315 -1, -1, -1, 160, -1, -1, -1, 1014, -1, -1, 3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1500, 3317 -1, 426, 427, -1, -1, 1032, 1033, -1, 433, -1, 3318 -1, 1118, -1, -1, -1, -1, -1, -1, -1, -1, 3319 -1, -1, -1, -1, -1, -1, -1, -1, -1, 454, 3320 -1, -1, 1059, -1, -1, 1062, -1, -1, -1, -1, 3321 -1, -1, -1, -1, 221, -1, 223, 224, 225, -1, 3322 -1, -1, -1, -1, -1, -1, -1, 482, -1, -1, 3323 -1, 10, 11, 12, 13, 14, -1, -1, -1, 494, 3324 -1, 1178, 1179, -1, -1, -1, -1, -1, 1105, -1, 3325 -1, 506, 259, 508, 1111, 1112, 511, 264, 513, 514, 3326 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3327 -1, 526, 279, -1, 1131, -1, -1, 1134, -1, -1, 3328 -1, 1138, -1, -1, -1, -1, -1, -1, 67, -1, 3329 -1, -1, -1, 72, 1151, 74, 75, 76, -1, -1, 3330 -1, -1, -1, -1, 83, 84, -1, 1164, -1, 1166, 3331 1167, 1168, 1169, -1, -1, -1, -1, -1, -1, -1, 3332 -1, 328, -1, -1, 579, 1182, -1, 1184, -1, -1, 3333 109, 1188, -1, -1, -1, -1, 591, -1, 117, 118, 3334 595, -1, -1, 350, -1, -1, -1, -1, 355, 356, 3335 -1, -1, -1, -1, -1, -1, 363, -1, -1, -1, 3336 1217, 1218, -1, -1, -1, -1, 621, -1, -1, -1, 3337 -1, 626, -1, -1, -1, -1, -1, -1, -1, -1, 3338 635, 636, 637, -1, -1, -1, -1, -1, -1, -1, 3339 -1, -1, -1, -1, -1, -1, -1, -1, 653, 406, 3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3341 1267, 1268, -1, -1, -1, -1, -1, 424, -1, -1, 3342 1277, -1, 429, -1, 431, -1, -1, -1, -1, -1, 3343 685, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3344 -1, 448, -1, -1, 451, 452, 1383, -1, -1, -1, 3345 -1, -1, 459, -1, -1, -1, 711, -1, 713, -1, 3346 -1, -1, 1399, -1, -1, -1, 473, -1, -1, -1, 3347 -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, 3348 -1, 1338, -1, 1340, 1341, 1342, -1, -1, -1, -1, 3349 -1, 746, -1, -1, -1, 1352, 44, -1, -1, -1, 3350 -1, -1, -1, -1, 1361, 10, 11, 12, 13, 14, 3349 3351 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3350 25, 26, 27, 28, -1, -1, -1, -1, -1, -1, 3351 -1, -1, -1, -1, 39, 906, -1, -1, 338, -1, 3352 -1, -1, -1, 343, -1, -1, -1, -1, -1, -1, 3353 921, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3354 -1, -1, 67, -1, -1, -1, -1, -1, -1, 595, 3355 -1, -1, 372, 78, 945, -1, 376, 377, -1, 379, 3356 -1, -1, -1, -1, -1, -1, 386, 387, -1, 389, 3357 390, -1, 392, -1, 394, -1, -1, 623, -1, -1, 3358 -1, -1, 628, -1, -1, -1, -1, -1, -1, -1, 3359 -1, 411, -1, -1, 37, 38, -1, 40, -1, 419, 3352 25, 26, 27, -1, -1, 30, 31, 32, -1, 1386, 3353 -1, -1, 1469, 1470, 39, -1, -1, 10, 11, 12, 3354 13, 14, -1, 91, -1, -1, -1, 802, -1, -1, 3355 -1, 806, -1, 101, -1, 810, -1, -1, -1, -1, 3356 -1, -1, 67, -1, -1, -1, 39, 72, -1, 74, 3357 75, 76, 1429, 1430, -1, -1, -1, -1, 83, 84, 3358 -1, -1, -1, -1, -1, 1442, -1, -1, 595, -1, 3359 -1, -1, 1449, -1, 67, -1, -1, -1, -1, 72, 3360 -1, 74, 75, 76, 109, -1, 111, -1, -1, 157, 3361 83, 84, 117, 118, -1, -1, 623, -1, -1, -1, 3362 -1, 628, -1, 171, 1481, -1, -1, -1, 1485, -1, 3363 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3364 -1, -1, -1, -1, 117, 118, 194, -1, -1, -1, 3365 905, -1, -1, -1, -1, -1, 1513, -1, 1515, -1, 3366 208, -1, -1, -1, -1, 920, -1, -1, -1, 217, 3367 -1, -1, -1, -1, -1, -1, -1, -1, -1, 227, 3368 -1, -1, -1, -1, -1, -1, 1543, 1544, -1, 944, 3369 -1, -1, 699, -1, 1551, 1552, -1, -1, -1, -1, 3370 -1, -1, -1, -1, 252, -1, 713, -1, -1, 257, 3360 3371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 1001, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3362 -1, 755, 756, 66, 444, -1, -1, -1, -1, 72, 3363 -1, 1022, 1023, 76, -1, -1, 79, 80, 81, 82, 3364 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3365 470, -1, -1, 699, -1, -1, 476, -1, -1, -1, 3366 -1, 481, -1, -1, -1, -1, 109, 713, 111, -1, 3367 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122, 3368 -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, 3369 -1, 1082, -1, -1, -1, -1, -1, 517, -1, -1, 3372 -1, -1, 270, -1, -1, -1, 733, -1, 276, -1, 3373 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3374 -1, -1, -1, -1, -1, 1000, -1, 295, 10, 11, 3375 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3376 22, 23, 24, 25, 26, 27, 1021, 1022, 30, 31, 3377 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3378 -1, -1, -1, -1, -1, -1, -1, 794, -1, -1, 3379 338, -1, -1, -1, -1, 343, -1, -1, -1, 806, 3380 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3381 72, -1, 74, 75, 76, -1, -1, -1, 825, -1, 3382 -1, 83, 84, -1, 372, -1, 1081, -1, 376, 377, 3383 -1, 379, -1, -1, -1, -1, -1, -1, 386, 387, 3384 -1, 389, 390, -1, 392, -1, 394, 109, -1, 111, 3385 -1, -1, -1, -1, -1, 117, 118, -1, -1, -1, 3386 -1, -1, -1, 411, -1, -1, -1, -1, -1, -1, 3387 -1, 419, -1, -1, -1, -1, -1, -1, -1, 155, 3388 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3389 -1, -1, 1147, -1, -1, -1, 444, -1, -1, -1, 3390 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3391 14, -1, -1, 189, -1, -1, -1, -1, -1, -1, 3392 196, -1, 470, -1, -1, -1, -1, -1, 476, -1, 3393 -1, 938, -1, 481, 1189, 39, 10, 11, 12, 13, 3394 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3395 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, 3396 -1, 968, -1, 67, -1, 39, -1, -1, 72, 517, 3397 -1, 1226, 76, -1, -1, -1, -1, -1, -1, 83, 3398 84, -1, -1, -1, 532, -1, -1, -1, -1, -1, 3399 -1, -1, 268, 67, -1, -1, 1003, -1, 72, -1, 3400 74, 75, 76, -1, 78, 109, -1, 1014, -1, 83, 3401 84, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3402 1275, 1276, -1, 571, -1, -1, -1, -1, -1, 1284, 3403 -1, -1, 580, -1, -1, 109, -1, 111, 146, 587, 3404 -1, -1, -1, 117, 118, 593, -1, 323, 156, -1, 3405 -1, -1, -1, -1, 602, 331, 332, -1, 334, 335, 3406 168, 169, -1, -1, -1, -1, -1, -1, -1, 345, 3407 -1, -1, -1, 349, -1, -1, -1, -1, -1, 1086, 3370 3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, 532, -1, 0, -1, -1, 3, 4, 5, 3409 -1, -1, 368, 1100, 642, 371, 3, 4, 5, 6, 3410 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3411 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3412 27, -1, 398, 30, 31, 32, 402, -1, -1, -1, 3413 678, 239, 39, -1, -1, -1, -1, -1, 686, -1, 3414 1395, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3415 -1, -1, -1, -1, -1, 263, -1, 433, -1, -1, 3416 67, -1, 69, -1, 71, -1, -1, 74, 75, 717, 3417 -1, 66, -1, -1, -1, -1, -1, 72, -1, 727, 3418 728, 76, 1189, -1, 79, 80, 81, 82, 83, 84, 3419 -1, 86, 87, -1, -1, -1, 1451, -1, 1453, -1, 3420 -1, -1, -1, 479, 111, -1, 482, -1, -1, -1, 3421 117, 118, 760, -1, 109, -1, 111, 765, -1, 114, 3422 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3423 -1, -1, 1487, -1, 1489, -1, -1, -1, -1, -1, 3424 -1, -1, -1, -1, -1, 521, -1, -1, -1, 525, 3425 526, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3426 -1, 1516, -1, -1, -1, -1, -1, -1, -1, -1, 3427 -1, -1, 380, -1, -1, -1, -1, 1284, -1, -1, 3428 -1, 829, -1, -1, -1, -1, -1, -1, 836, -1, 3429 -1, -1, -1, -1, -1, 571, 572, -1, -1, -1, 3430 -1, 849, -1, 851, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, -1, 590, 591, -1, 865, -1, -1, 3432 -1, -1, -1, 871, -1, 601, -1, 603, 604, -1, 3433 -1, -1, -1, -1, 610, 883, -1, -1, 886, -1, 3434 -1, -1, -1, -1, 620, 621, -1, -1, -1, -1, 3435 626, -1, -1, -1, -1, -1, -1, -1, -1, 635, 3436 636, 637, -1, -1, -1, -1, 474, -1, -1, -1, 3437 -1, -1, -1, -1, -1, -1, -1, 653, -1, -1, 3438 -1, -1, 658, 659, -1, -1, 662, 663, -1, -1, 3439 -1, -1, -1, 669, -1, -1, -1, -1, -1, -1, 3440 -1, -1, -1, -1, -1, 513, -1, -1, -1, -1, 3441 -1, -1, 688, -1, -1, 963, -1, -1, 526, -1, 3442 -1, -1, -1, 531, -1, -1, 534, -1, -1, -1, 3443 -1, -1, -1, -1, -1, 711, 712, -1, -1, 547, 3444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3445 998, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3446 -1, 569, -1, -1, -1, -1, -1, -1, -1, 745, 3447 746, 579, -1, -1, 750, 751, -1, -1, 586, -1, 3448 -1, -1, -1, 591, -1, -1, -1, -1, -1, -1, 3449 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3450 20, 21, 22, 23, 24, 25, 26, 27, 1056, -1, 3451 30, 31, 32, -1, 1062, -1, -1, -1, 794, 39, 3452 -1, -1, -1, -1, 1531, -1, 802, -1, -1, -1, 3453 -1, -1, 640, 809, 810, -1, -1, 813, -1, 815, 3454 648, -1, -1, -1, -1, -1, -1, 67, 1096, 825, 3455 -1, -1, 72, 1101, 74, 75, 76, -1, -1, -1, 3456 -1, 1109, -1, 83, 84, -1, 10, 11, 12, 13, 3457 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3458 24, 25, 26, 27, 28, -1, -1, -1, -1, 109, 3459 -1, 111, -1, -1, 1142, 39, -1, 117, 118, -1, 3460 -1, -1, -1, -1, -1, -1, 1154, -1, -1, 1157, 3461 -1, 1159, -1, -1, -1, -1, -1, -1, -1, -1, 3462 -1, 897, -1, 67, -1, 1173, 1174, -1, 904, 905, 3463 906, -1, 908, -1, 78, -1, 912, -1, 746, -1, 3464 748, -1, -1, -1, -1, -1, -1, 1195, -1, -1, 3465 758, -1, -1, -1, -1, -1, 764, 933, 934, -1, 3466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3467 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 3469 -1, -1, 968, -1, 1242, -1, -1, -1, 806, 807, 3470 -1, -1, 810, -1, -1, -1, -1, -1, 37, 38, 3471 -1, 40, -1, 989, 990, -1, 824, 67, -1, -1, 3472 -1, -1, -1, -1, 1000, -1, -1, -1, 78, -1, 3473 1006, 1007, -1, 1009, 1010, 1011, -1, 66, -1, -1, 3474 -1, -1, -1, 72, -1, 1021, 1022, 76, -1, -1, 3475 79, 80, 81, 82, 83, 84, 864, 86, 87, -1, 3476 868, -1, -1, -1, -1, -1, -1, -1, -1, 1317, 3477 -1, 1319, -1, -1, -1, -1, -1, -1, -1, -1, 3478 109, -1, 111, 1331, -1, 1333, -1, 116, 117, 118, 3479 119, 120, 121, 122, -1, -1, -1, 905, -1, -1, 3480 -1, -1, 1350, -1, -1, -1, -1, -1, 1084, -1, 3481 1086, -1, -1, -1, -1, 1091, -1, -1, 1366, 1367, 3482 -1, -1, -1, -1, 1100, -1, -1, -1, -1, 1377, 3483 -1, -1, 1380, -1, -1, -1, 944, -1, -1, -1, 3484 -1, -1, -1, -1, -1, -1, -1, 1123, 1124, 1125, 3485 -1, -1, -1, 1401, -1, -1, -1, -1, -1, -1, 3486 -1, -1, 1410, -1, 972, 1413, -1, 1415, 1416, 1417, 3487 978, 1147, -1, -1, 982, 37, 38, -1, 40, -1, 3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3489 -1, -1, -1, -1, -1, 1003, -1, -1, -1, -1, 3490 -1, -1, -1, -1, 66, -1, 1014, 1455, -1, 1457, 3491 72, 1459, 74, 75, 76, -1, -1, 79, 80, 81, 3492 82, 83, 84, -1, 86, 87, 1474, -1, 1036, -1, 3493 1038, -1, 1208, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, 1053, 1054, 109, -1, 111, 3495 1226, 113, 114, -1, -1, 117, 118, 119, 120, 121, 3496 122, -1, -1, -1, -1, -1, 1074, -1, -1, -1, 3497 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3498 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3499 19, 20, 21, 22, 23, 24, 25, 26, 27, 1275, 3500 1276, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3501 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3502 -1, 1129, -1, -1, -1, -1, -1, -1, -1, -1, 3503 -1, -1, -1, -1, -1, -1, -1, -1, 67, 1147, 3504 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 3505 -1, -1, -1, -1, 1162, 1163, -1, 3, 4, 5, 3372 3506 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3373 3507 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3374 26, 27, -1, -1, 30, 31, 32, 33, -1, 795, 3375 36, 571, -1, 39, 40, -1, -1, -1, -1, 1150, 3376 580, 807, -1, -1, -1, -1, -1, 587, -1, -1, 3377 -1, -1, -1, 593, -1, -1, -1, -1, 64, 913, 3378 826, 67, 602, 69, 918, 71, 72, -1, 74, 75, 3379 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3380 -1, 1192, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, -1, -1, -1, 155, 156, -1, -1, -1, 3382 -1, -1, 642, 109, -1, 111, -1, -1, -1, -1, 3383 -1, 117, 118, -1, -1, -1, -1, -1, 1229, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 189, 3385 -1, -1, -1, -1, -1, -1, 196, -1, 678, -1, 3386 -1, -1, -1, -1, -1, -1, 686, -1, -1, 10, 3387 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3388 21, 22, 23, 24, 25, 26, 27, 1278, 1279, 30, 3389 31, 32, -1, 939, -1, -1, 1287, 717, 39, -1, 3390 -1, -1, -1, -1, -1, -1, -1, 727, 728, -1, 3508 26, 27, 111, -1, 30, 31, 32, 33, 117, 118, 3509 36, 37, 38, 39, 40, 41, -1, 43, -1, -1, 3510 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3511 -1, 57, -1, -1, -1, 61, 62, -1, 64, 1395, 3512 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3513 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3514 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3391 3515 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3392 -1, -1, -1, 969, -1, -1, 67, -1, 268, -1, 3393 -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3394 760, -1, 83, 84, -1, 1079, 766, -1, -1, -1, 3395 -1, -1, -1, -1, -1, -1, -1, -1, 1004, -1, 3396 -1, -1, -1, -1, -1, -1, -1, -1, 109, 1015, 3397 111, -1, -1, -1, -1, -1, 117, 118, -1, -1, 3398 -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 3399 -1, 331, 332, -1, 334, 335, -1, -1, -1, -1, 3400 -1, -1, -1, -1, -1, 345, -1, 1398, -1, 349, 3401 830, -1, -1, -1, -1, -1, -1, 837, -1, -1, 3402 -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, 3403 850, 371, 852, -1, -1, -1, -1, -1, -1, -1, 3404 -1, 1087, -1, -1, -1, -1, 866, -1, -1, -1, 3405 -1, -1, 872, -1, -1, 1101, -1, -1, 398, -1, 3406 -1, -1, 402, 1454, 884, 1456, -1, 887, -1, -1, 3407 -1, -1, -1, -1, -1, -1, 1210, -1, -1, -1, 3516 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3517 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3518 -1, 127, -1, -1, -1, -1, 132, -1, -1, -1, 3519 -1, -1, -1, -1, -1, 1303, -1, -1, 1306, -1, 3520 -1, -1, -1, -1, -1, -1, 1482, -1, -1, -1, 3408 3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3409 -1, -1, -1, 433, -1, -1, -1, -1, -1, 1490,3410 -1, 1492, -1, -1, -1, -1, -1, -1, -1, -1,3411 -1, -1, 282, -1, 284, 285, -1, -1, -1, -1,3412 -1, -1, 292, 293, -1, -1, -1, -1, 1519, -1,3413 -1, -1, -1, -1, -1, -1, -1, 307, 308, 479,3414 -1, -1, 482, -1, 964, -1, 1192, -1, -1, -1,3415 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,3416 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,3417 -1, 30, 31, 32, -1, 345, -1, -1, -1, 999,3418 39, 521, -1, -1, -1, 525, 526, -1, -1, -1,3419 3522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3421 -1, 381, -1, 72, -1, 74, 75, 76, -1, 78, 3422 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3423 -1, 571, 572, -1, -1, -1, -1, 1057, -1, -1, 3424 -1, 1287, -1, 1063, -1, -1, 146, -1, -1, -1, 3425 590, 591, 111, -1, -1, -1, 156, -1, 117, 118, 3426 -1, 601, -1, 603, 604, -1, -1, -1, 168, 169, 3427 610, -1, -1, -1, -1, -1, -1, 1097, -1, -1, 3428 620, 621, 1102, -1, -1, -1, 626, -1, -1, -1, 3429 1110, -1, -1, -1, -1, 635, 636, 637, -1, -1, 3523 1506, 1507, -1, -1, -1, -1, -1, -1, -1, -1, 3430 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, 653, -1, -1, -1, -1, 658, 659, 3432 -1, -1, 662, 663, -1, 1145, -1, -1, -1, 669, 3433 -1, -1, -1, -1, -1, -1, -1, 1157, -1, 239, 3434 1160, -1, 1162, -1, -1, -1, -1, -1, 688, -1, 3435 -1, -1, -1, -1, -1, -1, 1176, 1177, -1, -1, 3436 -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, 3437 -1, 711, 712, -1, -1, -1, -1, -1, 1198, -1, 3438 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 3439 560, 561, 562, 563, 564, 565, 566, 567, -1, -1, 3440 -1, -1, -1, -1, -1, 745, 746, -1, -1, -1, 3441 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, 3442 -1, -1, -1, -1, -1, 1245, -1, -1, -1, -1, 3443 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3444 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3445 30, 31, 32, -1, -1, 795, -1, -1, -1, 39, 3446 -1, -1, -1, 803, -1, -1, -1, -1, -1, -1, 3447 810, 811, -1, -1, 814, -1, 816, -1, -1, -1, 3448 380, -1, -1, -1, -1, -1, 826, 67, 1534, -1, 3449 -1, -1, 72, -1, 74, 75, 76, -1, 78, -1, 3450 1320, -1, 1322, 83, 84, -1, -1, -1, -1, -1, 3451 -1, -1, -1, -1, -1, -1, 1336, -1, 1338, -1, 3452 -1, -1, -1, -1, -1, -1, 696, -1, -1, 109, 3453 -1, 111, -1, 1353, -1, -1, -1, 117, 118, -1, 3454 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1369, 3455 1370, -1, -1, -1, -1, -1, -1, -1, 898, -1, 3456 1380, -1, -1, 1383, -1, 905, 906, 907, -1, 909, 3457 -1, -1, -1, 913, 474, -1, -1, -1, -1, -1, 3458 -1, -1, -1, -1, 1404, -1, -1, 757, -1, -1, 3459 -1, -1, -1, 1413, 934, 935, 1416, -1, 1418, 1419, 3460 1420, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, 513, -1, -1, -1, -1, 788, -1, 3462 -1, -1, -1, -1, -1, -1, 526, -1, -1, 969, 3463 -1, 531, -1, -1, 534, -1, -1, -1, 1458, -1, 3464 1460, -1, 1462, -1, -1, -1, -1, 547, -1, -1, 3465 990, 991, -1, -1, -1, -1, -1, 1477, -1, -1, 3466 -1, 1001, -1, -1, -1, -1, -1, 1007, 1008, 569, 3467 1010, 1011, 1012, -1, -1, -1, -1, -1, -1, 579, 3468 -1, -1, 1022, 1023, -1, -1, 586, -1, -1, -1, 3469 -1, 591, -1, -1, 3, 4, 5, 6, 7, 8, 3525 -1, -1, -1, -1, -1, 1531, 3, 4, 5, 6, 3526 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3527 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3528 27, -1, -1, 30, 31, 32, 33, -1, -1, 36, 3529 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3530 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3531 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3532 67, -1, 69, 39, 71, 72, -1, 74, 75, 76, 3533 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3534 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3535 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3536 -1, -1, 109, -1, 111, -1, -1, 83, 84, -1, 3537 117, 118, 119, 120, 121, 122, 4, 5, 6, 7, 3538 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3539 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3540 -1, -1, 30, 31, 32, -1, -1, -1, 1516, 37, 3541 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3542 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3543 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3544 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3545 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3547 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3548 -1, 109, -1, 111, -1, -1, -1, -1, 116, 117, 3549 118, 119, 120, 121, 122, 4, 5, 6, 7, 8, 3470 3550 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3471 3551 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3472 -1, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3473 39, 40, -1, -1, -1, -1, -1, -1, 908, -1, 3474 640, -1, -1, -1, -1, 1085, -1, 1087, 648, -1, 3475 -1, -1, 1092, -1, -1, 64, -1, -1, 67, -1, 3476 69, 1101, 71, 72, -1, 74, 75, 76, -1, -1, 3477 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3478 -1, -1, -1, 953, 1124, 1125, 1126, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 109, -1, 111, -1, -1, -1, 115, -1, 117, 118, 3481 1150, -1, -1, -1, -1, -1, -1, -1, 988, -1, 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3483 -1, 1001, -1, -1, -1, -1, -1, -1, 37, 38, 3484 -1, 40, -1, -1, -1, -1, 746, -1, 748, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, 758, -1, 3486 -1, -1, -1, -1, 764, -1, -1, 66, -1, -1, 3487 -1, 1211, 1042, 72, -1, 74, 75, 76, -1, -1, 3488 79, 80, 81, 82, 83, 84, -1, 86, 87, 1229, 3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3490 -1, -1, -1, -1, -1, -1, -1, 807, 808, -1, 3491 109, 811, 111, -1, 113, 114, -1, -1, 117, 118, 3492 119, 120, 121, 122, -1, 825, -1, -1, -1, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, 1278, 1279, 3494 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1119, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3496 -1, -1, -1, -1, -1, 865, -1, -1, -1, 869, 3497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3498 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3499 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3500 23, 24, 25, 26, 27, -1, 906, 30, 31, 32, 3501 33, 1181, 1182, 36, -1, -1, 39, 40, -1, -1, 3502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3504 -1, 64, -1, -1, 67, 945, 69, -1, 71, 72, 3505 -1, 74, 75, 76, -1, -1, -1, -1, 1398, -1, 3506 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3507 -1, -1, -1, 973, -1, -1, -1, 37, 38, 979, 3508 40, -1, -1, 983, -1, -1, 109, -1, 111, -1, 3509 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3510 -1, -1, -1, -1, 1004, -1, 66, -1, -1, -1, 3511 -1, -1, 72, -1, -1, 1015, 76, -1, -1, 79, 3512 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3513 -1, -1, -1, -1, -1, -1, -1, 1037, -1, 1039, 3514 -1, -1, -1, 37, 38, 1485, 40, -1, -1, 109, 3515 -1, 111, -1, -1, 1054, 1055, 116, 117, 118, 119, 3516 120, 121, 122, -1, -1, -1, -1, -1, -1, 1509, 3517 1510, -1, 66, -1, -1, 1075, -1, -1, 72, -1, 3518 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3519 84, -1, 86, 87, 1534, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3521 -1, -1, -1, -1, -1, 109, 1386, 111, -1, -1, 3522 114, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3523 1130, -1, 1402, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3525 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3526 -1, -1, -1, -1, -1, 1165, 1166, -1, -1, -1, 3527 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3528 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3529 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3530 32, 33, 1472, 1473, 36, 37, 38, 39, 40, 41, 3531 -1, 43, -1, -1, 46, 47, 48, 49, 50, 51, 3532 52, 53, -1, -1, -1, 57, -1, -1, -1, 61, 3533 62, -1, 64, -1, 66, 67, -1, 69, -1, 71, 3534 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3535 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3538 -1, -1, 114, -1, -1, 117, 118, 119, 120, 121, 3539 122, -1, -1, -1, -1, 127, -1, -1, -1, -1, 3540 132, -1, -1, -1, -1, -1, 1306, -1, -1, 1309, 3541 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3542 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3543 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3544 33, -1, -1, 36, 37, 38, 39, 40, 10, 11, 3545 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3546 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3547 32, -1, -1, 66, 67, -1, 69, 39, 71, 72, 3548 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3549 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3550 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3551 72, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3552 -1, 83, 84, -1, 117, 118, 119, 120, 121, 122, 3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 3554 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3555 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3556 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3557 -1, 30, 31, 32, 33, -1, -1, 36, 37, 38, 3558 39, 40, -1, -1, -1, 10, 11, 12, 13, 14, 3559 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3560 25, 26, 27, 28, -1, -1, -1, 66, 67, -1, 3561 69, -1, 71, 72, 39, 74, 75, 76, -1, 1519, 3552 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3553 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3554 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3555 -1, -1, 30, 31, 32, -1, -1, 66, 67, -1, 3556 69, 39, 71, 72, -1, 74, 75, 76, -1, -1, 3562 3557 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3564 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1,3565 109, -1, 111, 78, -1, -1, -1, -1, 117, 118,3558 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3559 -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, 3560 109, -1, 111, -1, -1, -1, -1, 116, 117, 118, 3566 3561 119, 120, 121, 122, 4, 5, 6, 7, 8, 9, 3567 3562 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 3570 3565 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3571 3566 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3572 -1, 30, 31, 32, -1, -1, 66, 67, -1, 69,3567 -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, 3573 3568 39, 71, 72, -1, 74, 75, 76, -1, -1, 79, 3574 3569 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3575 3570 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3576 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109,3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3577 3572 -1, 111, -1, -1, -1, -1, 116, 117, 118, 119, 3578 3573 120, 121, 122, 4, 5, 6, 7, 8, 9, 10, … … 3580 3575 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3581 3576 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3582 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,3583 20, 21, 22, 23, 24, 25, 26, 27, -1, -1,3584 30, 31, 32, -1, -1, 66, 67, -1, 69, 39,3577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3579 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3585 3580 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3586 3581 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1,3588 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1,3589 111, -1, -1, -1, -1, 116, 117, 118, 119, 120,3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3583 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3584 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3590 3585 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3591 3586 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, … … 3599 3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3600 3595 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3601 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121,3596 -1, -1, -1, -1, -1, 117, 118, 119, 120, 121, 3602 3597 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3603 3598 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, … … 3623 3618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624 3619 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3625 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3620 -1, -1, -1, 117, 118, 119, 120, 121, 122, 0, 3621 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3622 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3623 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3624 31, 32, 33, -1, -1, 36, -1, -1, 39, 40, 3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3626 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3627 -1, -1, -1, 64, -1, -1, 67, -1, 69, -1, 3628 71, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3629 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3632 111, -1, -1, -1, -1, -1, 117, 118, 3, 4, 3626 3633 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3627 3634 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3628 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3629 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3635 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3636 -1, 36, -1, -1, 39, 40, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3638 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 3639 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3640 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3630 3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3632 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3633 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3634 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3643 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3644 115, -1, 117, 118, 3, 4, 5, 6, 7, 8, 3645 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3646 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3647 -1, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3648 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3635 3649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3636 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3637 -1, -1, 117, 118, 119, 120, 121, 122, 4, 5, 3638 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3639 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3640 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3641 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3650 -1, -1, -1, -1, -1, 64, -1, -1, 67, -1, 3651 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3652 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3642 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3644 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3645 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3646 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3648 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3649 -1, 117, 118, 119, 120, 121, 122, 3, 4, 5, 3650 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3651 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3652 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3653 -1, -1, -1, 39, -1, 10, 11, 12, 13, 14, 3654 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3655 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, 3656 35, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3657 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3660 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3661 -1, 117, 118, 3, 4, 5, 6, 7, 8, 9, 3662 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3663 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3664 30, 31, 32, 33, -1, -1, 36, -1, -1, 39, 3655 109, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3656 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3658 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3659 -1, -1, -1, -1, -1, -1, 39, -1, 10, 11, 3660 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3661 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3662 32, 33, 34, 35, 67, -1, 69, 39, 71, 72, 3663 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3664 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3666 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3667 -1, -1, -1, -1, 117, 118, 3, 4, 5, 6, 3668 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3669 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3670 27, 28, -1, 30, 31, 32, 33, -1, -1, 36, 3671 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3665 3672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3667 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3668 -1, 71, -1, -1, 74, 75, -1, -1, 78, 3, 3674 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3675 -1, 78, 4, 5, 6, 7, 8, 9, 10, 11, 3676 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3677 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3678 32, -1, -1, -1, 111, -1, -1, 39, -1, -1, 3679 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3682 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3683 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3686 -1, -1, -1, -1, -1, 117, 118, 4, 5, 6, 3687 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3688 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3689 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3690 -1, -1, 39, -1, -1, -1, -1, 10, 11, 12, 3691 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3692 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3693 67, -1, 69, -1, 71, -1, 39, 74, 75, -1, 3669 3694 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3670 3695 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3671 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3672 -1, 111, 36, -1, -1, 39, -1, 117, 118, -1, 3696 24, 25, 26, 27, 67, -1, 30, 31, 32, -1, 3697 -1, 74, 75, 110, 111, 39, -1, -1, -1, -1, 3698 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, 67, -1, 69, 109, 71, 111, -1, 3701 74, 75, -1, -1, 117, 118, -1, -1, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3705 -1, -1, -1, 117, 118, 4, 5, 6, 7, 8, 3706 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3707 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3708 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3709 39, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3710 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3711 26, 27, -1, -1, 30, 31, 32, -1, 67, -1, 3712 69, -1, 71, 39, 40, 74, 75, -1, -1, -1, 3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714 -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 3715 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3716 -1, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3717 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3718 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3719 24, 25, 26, 27, -1, 111, 30, 31, 32, 115, 3720 -1, 117, 118, -1, -1, 39, -1, -1, -1, -1, 3673 3721 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3674 3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3675 3723 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3676 74, 75, 3, 4, 5, 6, 7, 8, 9, 10,3724 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3677 3725 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3678 3726 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, … … 3688 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3689 3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3690 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3691 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3695 118, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3696 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3697 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3698 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 3699 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3700 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3701 -1, 30, 31, 32, 67, -1, 69, -1, 71, -1, 3702 39, 74, 75, -1, 4, 5, 6, 7, 8, 9, 3703 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3704 20, 21, 22, 23, 24, 25, 26, 27, 67, -1, 3705 30, 31, 32, -1, -1, 74, 75, 110, 111, 39, 3706 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3709 109, 71, 111, -1, 74, 75, -1, -1, 117, 118, 3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3713 -1, 111, -1, -1, -1, -1, -1, 117, 118, 4, 3738 -1, 69, -1, 71, -1, -1, 74, 75, -1, 4, 3714 3739 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3715 3740 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3716 3741 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3717 -1, -1, -1, -1, 39, -1, -1, -1, 10, 11, 3718 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3719 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3720 32, -1, 67, -1, 69, -1, 71, 39, 40, 74, 3721 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742 -1, -1, -1, 111, 39, -1, -1, -1, -1, 117, 3743 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3722 3744 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3723 -1, 96, -1, -1, -1, 67, -1, -1, -1, -1, 3724 -1, -1, 74, 75, -1, -1, 111, -1, -1, -1, 3725 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3727 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3728 30, 31, 32, 115, -1, 117, 118, -1, -1, 39, 3745 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3746 75, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3747 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3748 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3749 39, 40, -1, -1, -1, -1, 111, -1, -1, -1, 3750 -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, 3751 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 3752 -1, -1, -1, 72, -1, 74, 75, 76, -1, -1, 3753 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3729 3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3730 3755 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3732 -1, 71, -1, -1, 74, 75, -1, 4, 5, 6, 3733 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3734 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3735 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3736 -1, 111, 39, -1, -1, -1, -1, 117, 118, -1, 3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3739 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3740 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3741 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3742 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3743 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3744 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3746 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3747 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3748 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3749 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3750 31, 32, -1, -1, -1, -1, -1, 111, 39, -1, 3751 -1, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3754 71, -1, -1, 74, 75, 10, 11, 12, 13, 14, 3756 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3757 119, 120, 121, 122, 10, 11, 12, 13, 14, 15, 3758 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3759 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3760 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3755 3761 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3756 3762 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3757 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3758 111, -1, -1, -1, -1, -1, 117, 118, -1, -1, 3759 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3760 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3761 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3762 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3764 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3765 -1, -1, 117, 118, 119, 120, 121, 122, 10, 11, 3766 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3767 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3768 32, -1, -1, -1, -1, 37, 38, 39, 40, 10, 3769 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3770 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3771 31, 32, -1, -1, 66, 67, -1, -1, 39, -1, 3772 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3773 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3774 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3775 -1, 72, -1, 74, 75, 76, -1, 109, 110, 111, 3776 -1, -1, 83, 84, -1, 117, 118, 119, 120, 121, 3777 122, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3778 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3779 111, 30, 31, 32, -1, -1, 117, 118, 37, 38, 3780 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3781 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3782 -1, -1, 30, 31, 32, -1, -1, 66, 67, -1, 3783 -1, 39, -1, 72, -1, 74, 75, 76, -1, -1, 3784 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3786 -1, -1, -1, -1, 72, -1, 74, 75, -1, -1, 3787 109, -1, 111, -1, -1, 83, 84, -1, 117, 118, 3788 119, 120, 121, 122, 10, 11, 12, 13, 14, 15, 3789 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3790 26, 27, -1, 111, 30, 31, 32, -1, -1, 117, 3791 118, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3792 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3793 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3794 66, 67, -1, -1, 39, 40, 72, -1, 74, 75, 3763 66, 67, -1, -1, 39, -1, 72, -1, 74, 75, 3795 3764 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3796 3765 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3797 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74,3798 75, -1, -1, 109, -1, 111, -1, -1, -1, -1,3766 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3767 75, 76, -1, 109, 110, 111, -1, -1, 83, 84, 3799 3768 -1, 117, 118, 119, 120, 121, 122, 10, 11, 12, 3800 3769 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3801 3770 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3802 115, -1, 117, 118, 37, 38, 39, 40, 10, 11,3771 -1, -1, 117, 118, 37, 38, 39, 40, 10, 11, 3803 3772 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3804 3773 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3805 32, -1, -1, 66, 67, -1, -1, 39, 40, 72,3774 32, -1, -1, 66, 67, -1, -1, 39, -1, 72, 3806 3775 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3807 3776 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3808 3777 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3809 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1,3810 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122,3778 72, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3779 -1, 83, 84, -1, 117, 118, 119, 120, 121, 122, 3811 3780 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3812 3781 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3813 30, 31, 32, 115, -1, 117, 118, 37, 38, 39,3814 40, -1, -1, -1, -1, -1, -1, -1, 10, 11,3815 1 2, 13, 14, 15, 16, 17, 18, 19, 20, 21,3816 22, 23, 24, 25, 26, 27, 66, 67, 30, 31,3817 3 2, -1, 72, -1, 74, 75, 76, 39, -1, 79,3782 30, 31, 32, -1, -1, 117, 118, 37, 38, 39, 3783 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3784 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3785 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3786 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3818 3787 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3788 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3789 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3790 -1, 111, -1, -1, -1, -1, -1, 117, 118, 119, 3791 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3792 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3793 27, -1, 111, 30, 31, 32, 115, -1, 117, 118, 3794 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3795 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3796 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3797 67, -1, -1, 39, 40, 72, -1, 74, 75, 76, 3798 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3799 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3801 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3802 117, 118, 119, 120, 121, 122, 10, 11, 12, 13, 3803 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, 111, 30, 31, 32, 115, 3805 -1, 117, 118, 37, 38, 39, 40, -1, -1, -1, 3806 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3807 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3808 26, 27, 66, 67, 30, 31, 32, -1, 72, -1, 3809 74, 75, 76, 39, -1, 79, 80, 81, 82, 83, 3810 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3819 3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3820 -1, -1, -1, -1, -1, 67, -1, -1, -1, 109, 3821 -1, 111, 74, 75, -1, -1, -1, 117, 118, 119, 3822 120, 121, 122, 3, 4, 5, 6, 7, 8, 9, 3823 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3824 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3825 30, 31, 32, -1, -1, 117, 118, -1, -1, 39, 3826 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3812 -1, 67, -1, -1, -1, 109, -1, 111, 74, 75, 3813 -1, -1, -1, 117, 118, 119, 120, 121, 122, 3, 3814 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3815 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3816 24, 25, 26, 27, -1, 111, 30, 31, 32, -1, 3817 -1, 117, 118, -1, -1, 39, -1, -1, -1, 10, 3818 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3819 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 3820 31, 32, -1, 67, -1, 69, -1, 71, 39, -1, 3821 74, 75, -1, -1, -1, -1, -1, 10, 11, 12, 3822 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3823 23, 24, 25, 26, 27, -1, 67, 30, 31, 32, 3824 -1, 72, -1, 74, 75, 76, 39, 78, -1, -1, 3825 114, -1, 83, 84, -1, 10, 11, 12, 13, 14, 3826 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3827 25, 26, 27, 28, 67, 30, 31, 32, -1, 72, 3828 111, 74, 75, 76, 39, -1, 117, 118, -1, -1, 3829 83, 84, -1, 10, 11, 12, 13, 14, 15, 16, 3827 3830 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3828 27, -1, -1, 30, 31, 32, -1, 67, -1, 69, 3829 -1, 71, 39, -1, 74, 75, -1, -1, -1, -1, 3830 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3831 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3832 67, 30, 31, 32, -1, 72, -1, 74, 75, 76, 3833 39, -1, -1, -1, 114, -1, 83, 84, -1, 10, 3834 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3835 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3836 31, 32, 109, 72, 111, 74, 75, 76, 39, -1, 3837 117, 118, -1, -1, 83, 84, -1, 10, 11, 12, 3838 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3839 23, 24, 25, 26, 27, 28, 67, 30, 31, 32, 3840 109, 72, 111, 74, 75, 76, 39, -1, 117, 118, 3841 -1, -1, 83, 84, -1, 10, 11, 12, 13, 14, 3842 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3843 25, 26, 27, 28, 67, 30, 31, 32, 109, -1, 3844 111, 74, 75, -1, 39, 78, 117, 118, 10, 11, 3845 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3846 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3847 32, -1, 67, -1, -1, -1, 109, 39, 111, 74, 3848 75, -1, -1, 78, 117, 118, 10, 11, 12, 13, 3831 27, -1, 67, 30, 31, 32, 109, -1, 111, 74, 3832 75, -1, 39, 78, 117, 118, 10, 11, 12, 13, 3849 3833 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3850 24, 25, 26, 27, -1, 67, 30, 31, 32, -1,3851 -1, -1, 74, 75, -1, 39, 111, -1, -1, -1,3834 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3835 67, -1, -1, -1, -1, 39, 111, 74, 75, -1, 3852 3836 -1, -1, 117, 118, 10, 11, 12, 13, 14, 15, 3853 3837 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3854 26, 27, -1, 67, 30, 31, 32, -1, -1, 111,3855 74, 75, -1, 39, -1, 117, 118, 10, 11, 12,3856 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,3857 23, 24, 25, 26, 27, -1, -1, 30, 31, 32,3858 -1, 67, -1, -1, -1, -1, 39, 111, 74, 75,3859 -1, -1, -1, 117, 118, 10, 11, 12, 13, 14,3838 26, 27, -1, 67, 30, 31, 32, -1, -1, -1, 3839 74, 75, -1, 39, 111, -1, -1, -1, -1, -1, 3840 117, 118, 10, 11, 12, 13, 14, 15, 16, 17, 3841 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3842 -1, 67, 30, 31, 32, -1, -1, 111, 74, 75, 3843 -1, 39, -1, 117, 118, 10, 11, 12, 13, 14, 3860 3844 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3861 25, 26, 27, -1, 67, 30, 31, 32, -1, -1,3862 -1, 74, 75, -1, 39, 111, -1, -1, -1, -1,3845 25, 26, 27, -1, -1, 30, 31, 32, -1, 67, 3846 -1, -1, -1, -1, 39, 111, 74, 75, -1, -1, 3863 3847 -1, 117, 118, 10, 11, 12, 13, 14, 15, 16, 3864 3848 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3865 27, -1, 67, 30, 31, 32, -1, -1, 111, 74, 3866 75, -1, 39, -1, 117, 118, 4, 5, 6, 7, 3867 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3868 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3869 67, -1, 30, 31, 32, -1, 111, 74, 75, -1, 3870 -1, 39, 117, 118, -1, -1, -1, -1, -1, -1, 3849 27, -1, 67, 30, 31, 32, -1, -1, -1, 74, 3850 75, -1, 39, 111, -1, -1, -1, -1, -1, 117, 3851 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3852 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3853 67, 30, 31, 32, -1, -1, 111, 74, 75, -1, 3854 39, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3855 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3856 20, 21, 22, 23, 24, 25, 26, 27, 67, -1, 3857 30, 31, 32, -1, 111, 74, 75, -1, -1, 39, 3858 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3871 3859 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3873 -1, 69, -1, 71, 111, -1, 74, 75, -1, -1, 3874 117, 118, 37, 38, -1, 40, 41, -1, 43, -1, 3875 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3876 -1, 56, 57, -1, -1, -1, 61, 62, -1, 64, 3877 -1, 66, 110, -1, -1, -1, -1, 72, -1, -1, 3878 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3879 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3882 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3883 37, 38, 127, 40, 41, -1, 43, 132, -1, 46, 3884 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3860 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3861 -1, 71, -1, -1, 74, 75, -1, -1, 117, 118, 3862 37, 38, -1, 40, 41, -1, 43, -1, -1, 46, 3863 47, 48, 49, 50, 51, 52, 53, -1, -1, 56, 3885 3864 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3886 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76,3865 110, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3887 3866 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3888 3867 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 3868 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3890 3869 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3891 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3892 127, -1, -1, -1, -1, 132, 4, 5, 6, 7, 3893 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3894 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3895 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3896 -1, 39, -1, 37, 38, -1, 40, 41, -1, 43, 3897 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3898 -1, -1, 56, 57, -1, -1, -1, 61, 62, 67, 3899 64, 69, 66, 71, -1, -1, 74, 75, 72, -1, 3900 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3901 84, -1, 86, 87, -1, -1, -1, -1, 96, -1, 3870 117, 118, 119, 120, 121, 122, -1, -1, 37, 38, 3871 127, 40, 41, -1, 43, 132, -1, 46, 47, 48, 3872 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3873 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3874 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3875 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3902 3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3903 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3904 114, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3905 -1, 37, 38, 127, 40, 41, -1, 43, 44, 45, 3877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3878 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3879 119, 120, 121, 122, -1, -1, -1, -1, 127, -1, 3880 -1, -1, -1, 132, 4, 5, 6, 7, 8, 9, 3881 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3882 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3883 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3884 -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 3906 3885 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3907 -1, 57, -1, -1, -1, 61, 62, -1, 64, -1,3908 66, -1, -1, -1, -1, -1, 72, -1, -1, -1,3886 56, 57, -1, -1, -1, 61, 62, 67, 64, 69, 3887 66, 71, -1, -1, 74, 75, 72, -1, -1, -1, 3909 3888 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3910 86, 87, -1, -1, -1, -1, -1, -1, -1, -1,3889 86, 87, -1, -1, -1, -1, 96, -1, -1, -1, 3911 3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3912 3891 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3913 3892 -1, 117, 118, 119, 120, 121, 122, -1, -1, 37, 3914 38, 127, 40, 41, -1, 43, -1, -1, 46, 47,3893 38, 127, 40, 41, -1, 43, 44, 45, 46, 47, 3915 3894 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3916 3895 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3917 3896 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3918 3897 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3919 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3920 3899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921 3900 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3922 118, 119, 120, 121, 122, 66, -1, -1, -1, 127, 3923 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3924 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3925 -1, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3926 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3927 111, -1, 37, 38, -1, 40, 117, 118, 119, 120, 3928 121, 122, 66, -1, -1, -1, -1, -1, 72, -1, 3901 118, 119, 120, 121, 122, -1, -1, 37, 38, 127, 3902 40, 41, -1, 43, -1, -1, 46, 47, 48, 49, 3903 50, 51, 52, 53, -1, -1, -1, 57, -1, -1, 3904 -1, 61, 62, -1, 64, -1, 66, -1, -1, -1, 3905 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3906 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3907 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3908 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3909 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3910 120, 121, 122, 66, -1, -1, -1, 127, -1, 72, 3911 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3912 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3913 -1, 37, 38, -1, 40, -1, -1, -1, -1, -1, 3914 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3915 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122, 3916 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3917 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3918 86, 87, -1, -1, -1, -1, -1, -1, 37, 38, 3919 -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3920 -1, -1, -1, 109, -1, 111, -1, 37, 38, -1, 3921 40, 117, 118, 119, 120, 121, 122, 66, -1, -1, 3922 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3923 79, 80, 81, 82, 83, 84, 66, 86, 87, -1, 3924 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3925 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3926 109, -1, 111, -1, 37, 38, -1, 40, 117, 118, 3927 119, 120, 121, 122, -1, -1, -1, -1, -1, 109, 3928 -1, 111, -1, 37, 38, -1, 40, 117, 118, 119, 3929 120, 121, 122, 66, -1, -1, -1, -1, -1, 72, 3930 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3931 83, 84, 66, 86, 87, -1, -1, -1, 72, -1, 3929 3932 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3930 84, 66, 86, 87, -1, -1, -1, 72, -1, -1, 3931 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3932 -1, 86, 87, -1, -1, 109, -1, 111, -1, 37, 3933 38, -1, 40, 117, 118, 119, 120, 121, 122, -1, 3934 -1, -1, -1, -1, 109, -1, 111, -1, 37, 38, 3935 -1, 40, 117, 118, 119, 120, 121, 122, 66, -1, 3936 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3937 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 3938 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3939 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3940 -1, 109, -1, -1, -1, 37, 38, -1, 40, 117, 3941 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3942 109, -1, -1, -1, 37, 38, -1, 40, 117, 118, 3943 119, 120, 121, 122, 66, -1, -1, -1, -1, -1, 3944 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3945 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3946 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3947 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3948 -1, -1, -1, -1, -1, 117, 118, 119, 120, 121, 3949 122, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3950 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3933 84, -1, 86, 87, -1, -1, 109, -1, -1, -1, 3934 37, 38, -1, 40, 117, 118, 119, 120, 121, 122, 3935 -1, -1, -1, -1, -1, 109, -1, -1, -1, 37, 3936 38, -1, 40, 117, 118, 119, 120, 121, 122, 66, 3937 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3938 -1, -1, 79, 80, 81, 82, 83, 84, 66, 86, 3939 87, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3940 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3941 -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 3942 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3943 -1, 109, -1, -1, -1, -1, -1, -1, -1, 117, 3944 118, 119, 120, 121, 122, 4, 5, 6, 7, 8, 3945 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3946 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3948 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3949 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3950 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3951 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3952 -1, -1, -1, -1, 83, 84, 3, 4, 5, 6, 3953 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3954 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3955 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3956 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3959 67, -1, 69, -1, 71, -1, -1, 74, 75, 3, 3951 3960 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3952 3961 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3953 24, 25, 26, 27, -1, -1, -1, -1, -1, -1,3962 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3954 3963 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3955 3964 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3956 3965 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3958 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3959 84, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3966 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3967 74, 75, 4, 5, 6, 7, 8, 9, 10, 11, 3960 3968 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3961 3969 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, … … 3964 3972 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3965 3973 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3966 -1, -1, 74, 75, 3, 4, 5, 6, 7, 8, 3967 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3968 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3969 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3970 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3972 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3973 69, -1, 71, -1, -1, 74, 75, 4, 5, 6, 3974 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3975 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3976 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3977 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3980 67, -1, 69, -1, 71, -1, -1, 74, 75 3974 -1, -1, 74, 75 3981 3975 }; 3982 3976 … … 3989 3983 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 3990 3984 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 3991 76, 83, 84, 109, 111, 117, 118, 137, 140, 15 1,3992 200, 214, 215, 216, 217, 218, 219, 220, 221, 222,3993 22 3, 224, 225, 226, 227, 228, 229, 230, 231, 233,3994 23 4, 235, 236, 237, 238, 239, 241, 242, 243, 244,3995 24 5, 246, 248, 256, 257, 284, 285, 286, 294, 297,3996 30 3, 304, 306, 308, 309, 315, 320, 324, 325, 326,3997 32 7, 328, 329, 330, 331, 351, 368, 369, 370, 371,3998 72, 139, 140, 15 1, 217, 219, 227, 229, 238, 242,3999 24 4, 285, 82, 109, 313, 314, 315, 313, 313, 72,4000 74, 75, 76, 138, 139, 27 4, 275, 295, 296, 74,4001 75, 27 5, 109, 306, 11, 201, 109, 151, 320, 325,4002 32 6, 327, 329, 330, 331, 112, 134, 111, 220, 227,4003 22 9, 324, 328, 367, 368, 371, 372, 135, 107, 131,4004 27 8, 114, 135, 175, 74, 75, 137, 273, 135, 135,4005 135, 116, 135, 74, 75, 109, 15 1, 310, 319, 320,4006 32 1, 322, 323, 324, 328, 332, 333, 334, 335, 336,4007 34 2, 3, 28, 78, 240, 3, 5, 74, 111, 151,4008 21 9, 230, 234, 236, 245, 286, 324, 328, 371, 217,4009 21 9, 229, 238, 242, 244, 285, 324, 328, 33, 235,4010 23 5, 230, 236, 135, 235, 230, 235, 230, 75, 109,4011 114, 27 5, 286, 114, 275, 235, 230, 116, 135, 135,4012 0, 134, 109, 17 5, 313, 313, 134, 111, 227, 229,4013 36 9, 273, 273, 131, 229, 109, 151, 310, 320, 324,4014 111, 15 1, 371, 307, 232, 315, 109, 291, 109, 109,3985 76, 83, 84, 109, 111, 117, 118, 137, 140, 150, 3986 199, 213, 214, 215, 216, 217, 218, 219, 220, 221, 3987 222, 223, 224, 225, 226, 227, 228, 229, 230, 232, 3988 233, 234, 235, 236, 237, 238, 240, 241, 242, 243, 3989 244, 245, 247, 255, 256, 283, 284, 285, 293, 296, 3990 302, 303, 305, 307, 308, 314, 319, 323, 324, 325, 3991 326, 327, 328, 329, 330, 350, 367, 368, 369, 370, 3992 72, 139, 140, 150, 216, 218, 226, 228, 237, 241, 3993 243, 284, 82, 109, 312, 313, 314, 312, 312, 72, 3994 74, 75, 76, 138, 139, 273, 274, 294, 295, 74, 3995 75, 274, 109, 305, 11, 200, 109, 150, 319, 324, 3996 325, 326, 328, 329, 330, 112, 134, 111, 219, 226, 3997 228, 323, 327, 366, 367, 370, 371, 135, 107, 131, 3998 277, 114, 135, 174, 74, 75, 137, 272, 135, 135, 3999 135, 116, 135, 74, 75, 109, 150, 309, 318, 319, 4000 320, 321, 322, 323, 327, 331, 332, 333, 334, 335, 4001 341, 3, 28, 78, 239, 3, 5, 74, 111, 150, 4002 218, 229, 233, 235, 244, 285, 323, 327, 370, 216, 4003 218, 228, 237, 241, 243, 284, 323, 327, 33, 234, 4004 234, 229, 235, 135, 234, 229, 234, 229, 75, 109, 4005 114, 274, 285, 114, 274, 234, 229, 116, 135, 135, 4006 0, 134, 109, 174, 312, 312, 134, 111, 226, 228, 4007 368, 272, 272, 131, 228, 109, 150, 309, 319, 323, 4008 111, 150, 370, 306, 231, 314, 109, 290, 109, 109, 4015 4009 51, 109, 37, 38, 40, 66, 72, 76, 79, 80, 4016 4010 81, 82, 86, 87, 109, 111, 119, 120, 121, 122, 4017 136, 140, 141, 142, 143, 144, 1 50, 151, 152, 153,4018 15 4, 155, 156, 157, 158, 159, 160, 161, 162, 163,4019 16 4, 166, 169, 227, 277, 293, 367, 372, 229, 110,4020 110, 110, 110, 110, 110, 110, 74, 75, 111, 22 7,4021 27 3, 351, 369, 111, 117, 151, 166, 219, 220, 226,4022 22 9, 233, 234, 238, 241, 242, 244, 263, 264, 268,4023 26 9, 270, 271, 285, 351, 363, 364, 365, 366, 371,4024 37 2, 112, 109, 324, 328, 371, 109, 116, 132, 111,4025 114, 15 1, 166, 279, 279, 115, 134, 116, 132, 109,4026 116, 132, 116, 132, 116, 132, 31 3, 132, 320, 321,4027 32 2, 323, 333, 334, 335, 336, 229, 319, 332, 64,4028 31 2, 111, 313, 350, 351, 313, 313, 175, 134, 109,4029 31 3, 350, 313, 313, 229, 310, 109, 109, 228, 229,4030 22 7, 229, 112, 134, 227, 367, 372, 175, 134, 273,4031 27 8, 219, 234, 324, 328, 175, 134, 295, 229, 238,4032 132, 22 9, 229, 293, 249, 247, 259, 275, 258, 229,4033 29 5, 132, 132, 306, 134, 139, 272, 3, 135, 209,4034 2 10, 224, 226, 229, 134, 312, 109, 312, 166, 320,4035 22 9, 109, 134, 273, 114, 33, 34, 35, 227, 287,4036 28 8, 290, 134, 128, 131, 292, 134, 230, 235, 236,4037 27 3, 316, 317, 318, 109, 141, 109, 150, 109, 150,4038 15 3, 109, 150, 109, 109, 150, 150, 111, 166, 171,4039 17 5, 227, 276, 367, 371, 112, 134, 82, 85, 86,4011 136, 140, 141, 142, 143, 144, 149, 150, 151, 152, 4012 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 4013 163, 165, 168, 226, 276, 292, 366, 371, 228, 110, 4014 110, 110, 110, 110, 110, 110, 74, 75, 111, 226, 4015 272, 350, 368, 111, 117, 150, 165, 218, 219, 225, 4016 228, 232, 233, 237, 240, 241, 243, 262, 263, 267, 4017 268, 269, 270, 284, 350, 362, 363, 364, 365, 370, 4018 371, 112, 109, 323, 327, 370, 109, 116, 132, 111, 4019 114, 150, 165, 278, 278, 115, 134, 116, 132, 109, 4020 116, 132, 116, 132, 116, 132, 312, 132, 319, 320, 4021 321, 322, 332, 333, 334, 335, 228, 318, 331, 64, 4022 311, 111, 312, 349, 350, 312, 312, 174, 134, 109, 4023 312, 349, 312, 312, 228, 309, 109, 109, 227, 228, 4024 226, 228, 112, 134, 226, 366, 371, 174, 134, 272, 4025 277, 218, 233, 323, 327, 174, 134, 294, 228, 237, 4026 132, 228, 228, 292, 248, 246, 258, 274, 257, 228, 4027 294, 132, 132, 305, 134, 139, 271, 3, 135, 208, 4028 209, 223, 225, 228, 134, 311, 109, 311, 165, 319, 4029 228, 109, 134, 272, 114, 33, 34, 35, 226, 286, 4030 287, 289, 134, 128, 131, 291, 134, 229, 234, 235, 4031 272, 315, 316, 317, 109, 141, 109, 149, 109, 149, 4032 152, 109, 149, 109, 109, 149, 149, 111, 165, 170, 4033 174, 226, 275, 366, 370, 112, 134, 82, 85, 86, 4040 4034 87, 109, 111, 113, 114, 97, 98, 99, 100, 101, 4041 102, 103, 104, 105, 106, 107, 131, 16 8, 153, 153,4035 102, 103, 104, 105, 106, 107, 131, 167, 152, 152, 4042 4036 117, 123, 124, 119, 120, 88, 89, 90, 91, 125, 4043 4037 126, 92, 93, 118, 127, 128, 94, 95, 129, 131, 4044 37 4, 109, 151, 346, 347, 348, 349, 350, 110, 116,4045 109, 3 50, 351, 109, 350, 351, 134, 109, 227, 369,4046 112, 134, 135, 111, 22 7, 229, 362, 363, 371, 372,4047 135, 109, 111, 15 1, 320, 337, 338, 339, 340, 341,4048 34 2, 343, 344, 345, 351, 352, 353, 354, 355, 356,4049 35 7, 151, 371, 229, 135, 135, 151, 227, 229, 364,4050 27 3, 227, 351, 364, 273, 109, 134, 134, 134, 112,4051 134, 72, 111, 113, 140, 27 5, 279, 280, 281, 282,4052 28 3, 134, 134, 134, 134, 134, 134, 310, 110, 110,4053 110, 110, 110, 110, 110, 31 9, 332, 109, 278, 112,4054 20 9, 134, 310, 171, 277, 171, 277, 310, 111, 209,4055 31 2, 175, 134, 209, 110, 40, 111, 115, 227, 250,4056 25 1, 252, 367, 114, 116, 373, 131, 260, 114, 229,4057 26 5, 266, 267, 270, 271, 110, 116, 175, 134, 117,4058 16 6, 134, 226, 229, 264, 363, 371, 304, 305, 109,4059 15 1, 337, 110, 116, 374, 275, 287, 109, 114, 275,4060 27 7, 287, 110, 116, 109, 141, 110, 130, 276, 276,4061 27 6, 146, 166, 277, 276, 112, 134, 110, 116, 110,4062 109, 15 1, 350, 358, 359, 360, 361, 110, 116, 166,4063 111, 139, 145, 146, 134, 79, 111, 139, 145, 166,4064 15 3, 153, 153, 154, 154, 155, 155, 156, 156, 156,4065 156, 15 7, 157, 158, 159, 160, 161, 162, 130, 171,4066 1 66, 134, 347, 348, 349, 229, 346, 313, 313, 166,4067 277, 134, 272, 134, 227, 351, 364, 229, 233, 112,4068 1 12, 134, 371, 112, 109, 134, 320, 338, 339, 340,4069 3 43, 353, 354, 355, 112, 134, 229, 337, 341, 352,4070 109, 313, 356, 374, 313, 313, 374, 109, 313, 356,4071 31 3, 313, 313, 313, 351, 227, 362, 372, 273, 112,4072 11 6, 112, 116, 374, 227, 364, 374, 261, 262, 263,4073 26 4, 261, 261, 273, 166, 134, 111, 275, 130, 116,4074 373, 279, 111, 130, 283, 29, 211, 212, 273, 261,4075 139, 310, 139, 312, 109, 350, 351, 109, 350, 351,4076 142, 351, 175, 265, 110, 110, 110, 110, 112, 175,4077 209, 175, 114, 251, 252, 112, 134, 109, 130, 151,4078 25 3, 255, 319, 320, 332, 358, 116, 132, 116, 132,4079 2 75, 249, 275, 115, 164, 165, 259, 135, 135, 139,4080 224, 135, 135, 261, 109, 151, 371, 135, 115, 229,4081 288, 289, 135, 134, 134, 109, 135, 110, 317, 171,4082 1 72, 130, 132, 111, 141, 202, 203, 204, 110, 116,4083 110, 110, 110, 11 0, 111, 166, 359, 360, 361, 229,4084 3 58, 313, 313, 114, 153, 169, 166, 167, 170, 116,4085 13 5, 134, 110, 116, 166, 134, 115, 164, 130, 265,4086 110, 110, 110, 346, 265, 110, 261, 227, 364, 111,4087 1 17, 151, 166, 166, 229, 343, 265, 110, 110, 110,4088 110, 110, 110, 110, 7, 229, 337, 341, 352, 134,4089 134, 374, 134, 134, 110, 135, 135, 135, 135, 278,4090 1 35, 164, 165, 166, 311, 134, 279, 281, 115, 134,4091 2 13, 275, 40, 41, 43, 46, 47, 48, 49, 50,4092 5 1, 52, 53, 57, 61, 62, 72, 111, 127, 172,4093 173, 174, 175, 176, 17 7, 179, 180, 192, 194, 195,4094 2 00, 214, 309, 29, 135, 131, 278, 134, 134, 110,4095 1 35, 175, 249, 132, 132, 320, 165, 229, 254, 255,4096 2 54, 275, 313, 115, 260, 373, 110, 116, 112, 112,4097 135, 229, 116, 374, 291, 110, 287, 217, 219, 227,4098 299, 300, 301, 302, 293, 110, 110, 130, 165, 109,4099 1 10, 130, 116, 139, 112, 110, 110, 110, 358, 280,4100 1 16, 135, 170, 112, 79, 139, 147, 148, 149, 146,4101 1 35, 147, 164, 169, 135, 109, 350, 351, 135, 135,4102 13 4, 135, 135, 135, 166, 110, 135, 109, 350, 351,4103 109, 356, 109, 356, 351, 228, 7, 117, 135, 166,4104 26 5, 265, 264, 268, 268, 269, 116, 116, 110, 110,4105 1 12, 96, 122, 135, 135, 147, 279, 166, 116, 132,4106 2 14, 218, 229, 233, 109, 109, 173, 109, 109, 72,4107 132, 72, 132, 72, 117, 172, 109, 175, 167, 167,4108 13 0, 112, 144, 132, 135, 134, 135, 213, 110, 166,4109 265, 265, 313, 110, 115, 253, 115, 134, 110, 134,4110 13 5, 310, 115, 134, 135, 135, 110, 114, 202, 112,4111 165, 132, 202, 204, 110, 109, 350, 351, 373, 167,4112 11 2, 135, 116, 135, 85, 113, 112, 135, 110, 134,4113 11 0, 110, 112, 112, 112, 135, 110, 134, 134, 134,4114 1 66, 166, 135, 112, 135, 135, 135, 135, 134, 134,4115 1 65, 165, 112, 112, 135, 135, 275, 229, 171, 171,4116 47, 171, 134, 132, 132, 132, 171, 132, 171, 58,4117 59, 60, 196, 197, 198, 132, 63, 132, 313, 114,4118 1 77, 115, 132, 135, 135, 96, 270, 271, 110, 300,4119 1 16, 132, 116, 132, 115, 298, 130, 141, 110, 110,4120 1 30, 134, 115, 112, 148, 112, 111, 148, 111, 148,4121 112, 265, 112, 265, 265, 265, 135, 135, 112, 112,4122 11 0, 110, 112, 116, 96, 264, 96, 135, 112, 112,4123 110, 1 10, 109, 110, 172, 193, 214, 132, 110, 109,4124 109, 175, 198, 58, 59, 166, 173, 145, 110, 110,4125 114, 134, 134, 299, 141, 205, 109, 132, 205, 265,4126 13 4, 134, 135, 135, 135, 135, 112, 112, 134, 135,4127 112, 173, 44, 45, 114, 183, 184, 185, 171, 173,4128 1 35, 110, 172, 114, 185, 96, 134, 96, 134, 109,4129 1 09, 132, 115, 134, 273, 310, 115, 116, 130, 165,4130 1 10, 135, 147, 147, 110, 110, 110, 110, 268, 42,4131 165, 181, 182, 311, 130, 134, 173, 183, 110, 132,4132 1 73, 132, 134, 110, 134, 110, 134, 96, 134, 96,4133 1 34, 132, 299, 141, 139, 206, 110, 132, 110, 135,4134 1 35, 173, 96, 116, 130, 135, 207, 208, 214, 132,4135 17 2, 172, 207, 175, 199, 227, 367, 175, 199, 110,4136 1 34, 110, 134, 115, 110, 116, 112, 112, 165, 181,4137 1 84, 186, 187, 134, 132, 184, 188, 189, 135, 109,4138 1 51, 310, 358, 139, 135, 175, 199, 175, 199, 109,4139 1 32, 139, 173, 178, 115, 184, 214, 172, 56, 178,4140 1 91, 115, 184, 110, 229, 110, 135, 135, 293, 173,4141 1 78, 132, 190, 191, 178, 191, 175, 175, 110, 110,4142 1 10, 190, 135, 135, 175, 175, 135, 1354038 373, 109, 150, 345, 346, 347, 348, 349, 110, 116, 4039 109, 349, 350, 109, 349, 350, 134, 109, 226, 368, 4040 112, 134, 135, 111, 226, 228, 361, 362, 370, 371, 4041 135, 109, 111, 150, 319, 336, 337, 338, 339, 340, 4042 341, 342, 343, 344, 350, 351, 352, 353, 354, 355, 4043 356, 150, 370, 228, 135, 135, 150, 226, 228, 363, 4044 272, 226, 350, 363, 272, 109, 134, 134, 134, 112, 4045 134, 72, 111, 113, 140, 274, 278, 279, 280, 281, 4046 282, 134, 134, 134, 134, 134, 134, 309, 110, 110, 4047 110, 110, 110, 110, 110, 318, 331, 109, 277, 112, 4048 208, 134, 309, 170, 276, 170, 276, 309, 111, 208, 4049 311, 174, 134, 208, 110, 40, 111, 115, 226, 249, 4050 250, 251, 366, 114, 116, 372, 131, 259, 114, 228, 4051 264, 265, 266, 269, 270, 110, 116, 174, 134, 117, 4052 165, 134, 225, 228, 263, 362, 370, 303, 304, 109, 4053 150, 336, 110, 116, 373, 274, 286, 109, 114, 274, 4054 276, 286, 110, 116, 109, 141, 110, 130, 275, 275, 4055 275, 146, 165, 276, 275, 112, 134, 110, 116, 110, 4056 109, 150, 349, 357, 358, 359, 360, 110, 116, 165, 4057 111, 139, 145, 146, 134, 111, 139, 145, 165, 152, 4058 152, 152, 153, 153, 154, 154, 155, 155, 155, 155, 4059 156, 156, 157, 158, 159, 160, 161, 130, 170, 165, 4060 134, 346, 347, 348, 228, 345, 312, 312, 165, 276, 4061 134, 271, 134, 226, 350, 363, 228, 232, 112, 112, 4062 134, 370, 112, 109, 134, 319, 337, 338, 339, 342, 4063 352, 353, 354, 112, 134, 228, 336, 340, 351, 109, 4064 312, 355, 373, 312, 312, 373, 109, 312, 355, 312, 4065 312, 312, 312, 350, 226, 361, 371, 272, 112, 116, 4066 112, 116, 373, 226, 363, 373, 260, 261, 262, 263, 4067 260, 260, 272, 165, 134, 111, 274, 130, 116, 372, 4068 278, 111, 130, 282, 29, 210, 211, 272, 260, 139, 4069 309, 139, 311, 109, 349, 350, 109, 349, 350, 142, 4070 350, 174, 264, 110, 110, 110, 110, 112, 174, 208, 4071 174, 114, 250, 251, 112, 134, 109, 130, 150, 252, 4072 254, 318, 319, 331, 357, 116, 132, 116, 132, 274, 4073 248, 274, 115, 163, 164, 258, 135, 135, 139, 223, 4074 135, 135, 260, 109, 150, 370, 135, 115, 228, 287, 4075 288, 135, 134, 134, 109, 135, 110, 316, 170, 171, 4076 130, 132, 111, 141, 201, 202, 203, 110, 116, 110, 4077 110, 110, 110, 111, 165, 358, 359, 360, 228, 357, 4078 312, 312, 114, 152, 168, 165, 166, 169, 116, 135, 4079 134, 110, 116, 165, 134, 115, 163, 130, 264, 110, 4080 110, 110, 345, 264, 110, 260, 226, 363, 111, 117, 4081 150, 165, 165, 228, 342, 264, 110, 110, 110, 110, 4082 110, 110, 110, 7, 228, 336, 340, 351, 134, 134, 4083 373, 134, 134, 110, 135, 135, 135, 135, 277, 135, 4084 163, 164, 165, 310, 134, 278, 280, 115, 134, 212, 4085 274, 40, 41, 43, 46, 47, 48, 49, 50, 51, 4086 52, 53, 57, 61, 62, 72, 111, 127, 171, 172, 4087 173, 174, 175, 176, 178, 179, 191, 193, 194, 199, 4088 213, 308, 29, 135, 131, 277, 134, 134, 110, 135, 4089 174, 248, 132, 132, 319, 164, 228, 253, 254, 253, 4090 274, 312, 115, 259, 372, 110, 116, 112, 112, 135, 4091 228, 116, 373, 290, 110, 286, 216, 218, 226, 298, 4092 299, 300, 301, 292, 110, 110, 130, 164, 109, 110, 4093 130, 116, 139, 112, 110, 110, 110, 357, 279, 116, 4094 135, 169, 112, 139, 147, 148, 146, 135, 147, 163, 4095 168, 135, 109, 349, 350, 135, 135, 134, 135, 135, 4096 135, 165, 110, 135, 109, 349, 350, 109, 355, 109, 4097 355, 350, 227, 7, 117, 135, 165, 264, 264, 263, 4098 267, 267, 268, 116, 116, 110, 110, 112, 96, 122, 4099 135, 135, 147, 278, 165, 116, 132, 213, 217, 228, 4100 232, 109, 109, 172, 109, 109, 72, 132, 72, 132, 4101 72, 117, 171, 109, 174, 166, 166, 130, 112, 144, 4102 132, 135, 134, 135, 212, 110, 165, 264, 264, 312, 4103 110, 115, 252, 115, 134, 110, 134, 135, 309, 115, 4104 134, 135, 135, 110, 114, 201, 112, 164, 132, 201, 4105 203, 110, 109, 349, 350, 372, 166, 112, 135, 85, 4106 113, 116, 135, 112, 135, 110, 134, 110, 110, 112, 4107 112, 112, 135, 110, 134, 134, 134, 165, 165, 135, 4108 112, 135, 135, 135, 135, 134, 134, 164, 164, 112, 4109 112, 135, 135, 274, 228, 170, 170, 47, 170, 134, 4110 132, 132, 132, 170, 132, 170, 58, 59, 60, 195, 4111 196, 197, 132, 63, 132, 312, 114, 176, 115, 132, 4112 135, 135, 96, 269, 270, 110, 299, 116, 132, 116, 4113 132, 115, 297, 130, 141, 110, 110, 130, 134, 115, 4114 112, 111, 148, 111, 148, 148, 112, 112, 264, 112, 4115 264, 264, 264, 135, 135, 112, 112, 110, 110, 112, 4116 116, 96, 263, 96, 135, 112, 112, 110, 110, 109, 4117 110, 171, 192, 213, 132, 110, 109, 109, 174, 197, 4118 58, 59, 165, 172, 145, 110, 110, 114, 134, 134, 4119 298, 141, 204, 109, 132, 204, 264, 134, 134, 135, 4120 135, 135, 135, 112, 112, 134, 135, 112, 172, 44, 4121 45, 114, 182, 183, 184, 170, 172, 135, 110, 171, 4122 114, 184, 96, 134, 96, 134, 109, 109, 132, 115, 4123 134, 272, 309, 115, 116, 130, 164, 110, 135, 147, 4124 147, 110, 110, 110, 110, 267, 42, 164, 180, 181, 4125 310, 130, 134, 172, 182, 110, 132, 172, 132, 134, 4126 110, 134, 110, 134, 96, 134, 96, 134, 132, 298, 4127 141, 139, 205, 110, 132, 110, 135, 135, 172, 96, 4128 116, 130, 135, 206, 207, 213, 132, 171, 171, 206, 4129 174, 198, 226, 366, 174, 198, 110, 134, 110, 134, 4130 115, 110, 116, 112, 112, 164, 180, 183, 185, 186, 4131 134, 132, 183, 187, 188, 135, 109, 150, 309, 357, 4132 139, 135, 174, 198, 174, 198, 109, 132, 139, 172, 4133 177, 115, 183, 213, 171, 56, 177, 190, 115, 183, 4134 110, 228, 110, 135, 135, 292, 172, 177, 132, 189, 4135 190, 177, 190, 174, 174, 110, 110, 110, 189, 135, 4136 135, 174, 174, 135, 135 4143 4137 }; 4144 4138 … … 4977 4971 4978 4972 /* Line 1806 of yacc.c */ 4979 #line 30 2"parser.yy"4973 #line 300 "parser.yy" 4980 4974 { typedefTable.enterScope(); } 4981 4975 break; … … 4984 4978 4985 4979 /* Line 1806 of yacc.c */ 4986 #line 30 6"parser.yy"4980 #line 304 "parser.yy" 4987 4981 { typedefTable.leaveScope(); } 4988 4982 break; … … 4991 4985 4992 4986 /* Line 1806 of yacc.c */ 4987 #line 311 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4989 break; 4990 4991 case 5: 4992 4993 /* Line 1806 of yacc.c */ 4994 #line 312 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4996 break; 4997 4998 case 6: 4999 5000 /* Line 1806 of yacc.c */ 4993 5001 #line 313 "parser.yy" 4994 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }4995 break;4996 4997 case 5:4998 4999 /* Line 1806 of yacc.c */5000 #line 314 "parser.yy"5001 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }5002 break;5003 5004 case 6:5005 5006 /* Line 1806 of yacc.c */5007 #line 315 "parser.yy"5008 5002 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 5009 5003 break; … … 5012 5006 5013 5007 /* Line 1806 of yacc.c */ 5014 #line 3 40"parser.yy"5008 #line 338 "parser.yy" 5015 5009 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 5016 5010 break; … … 5019 5013 5020 5014 /* Line 1806 of yacc.c */ 5015 #line 342 "parser.yy" 5016 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 5017 break; 5018 5019 case 18: 5020 5021 /* Line 1806 of yacc.c */ 5021 5022 #line 344 "parser.yy" 5022 { (yyval.str) = (yyvsp[(1) - (1)].tok); }5023 break;5024 5025 case 18:5026 5027 /* Line 1806 of yacc.c */5028 #line 346 "parser.yy"5029 5023 { 5030 5024 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 5037 5031 5038 5032 /* Line 1806 of yacc.c */ 5033 #line 355 "parser.yy" 5034 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5035 break; 5036 5037 case 20: 5038 5039 /* Line 1806 of yacc.c */ 5039 5040 #line 357 "parser.yy" 5040 5041 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5041 5042 break; 5042 5043 5043 case 2 0:5044 case 21: 5044 5045 5045 5046 /* Line 1806 of yacc.c */ 5046 5047 #line 359 "parser.yy" 5047 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) )); }5048 break; 5049 5050 case 2 1:5048 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5049 break; 5050 5051 case 22: 5051 5052 5052 5053 /* Line 1806 of yacc.c */ 5053 5054 #line 361 "parser.yy" 5054 { (yyval.en) = (yyvsp[(2) - (3)].en); }5055 break;5056 5057 case 22:5058 5059 /* Line 1806 of yacc.c */5060 #line 363 "parser.yy"5061 5055 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5062 5056 break; … … 5065 5059 5066 5060 /* Line 1806 of yacc.c */ 5061 #line 371 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5063 break; 5064 5065 case 25: 5066 5067 /* Line 1806 of yacc.c */ 5067 5068 #line 373 "parser.yy" 5068 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }5069 break;5070 5071 case 25:5072 5073 /* Line 1806 of yacc.c */5074 #line 375 "parser.yy"5075 5069 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5076 5070 break; … … 5079 5073 5080 5074 /* Line 1806 of yacc.c */ 5075 #line 377 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5077 break; 5078 5079 case 27: 5080 5081 /* Line 1806 of yacc.c */ 5081 5082 #line 379 "parser.yy" 5082 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - ( 3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }5083 break; 5084 5085 case 2 7:5083 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5084 break; 5085 5086 case 28: 5086 5087 5087 5088 /* Line 1806 of yacc.c */ 5088 5089 #line 381 "parser.yy" 5089 { (yyval.en) = new ExpressionNode( build_ fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }5090 break; 5091 5092 case 2 8:5090 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5091 break; 5092 5093 case 29: 5093 5094 5094 5095 /* Line 1806 of yacc.c */ 5095 5096 #line 383 "parser.yy" 5096 { (yyval.en) = new ExpressionNode( build_ fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); }5097 break; 5098 5099 case 29:5097 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5098 break; 5099 5100 case 30: 5100 5101 5101 5102 /* Line 1806 of yacc.c */ 5102 5103 #line 385 "parser.yy" 5103 { (yyval.en) = new ExpressionNode( build_ pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok)) ) ); }5104 break; 5105 5106 case 3 0:5104 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5105 break; 5106 5107 case 31: 5107 5108 5108 5109 /* Line 1806 of yacc.c */ 5109 5110 #line 387 "parser.yy" 5110 { (yyval.en) = new ExpressionNode( build_ pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en)) ) ); }5111 break; 5112 5113 case 3 1:5111 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5112 break; 5113 5114 case 32: 5114 5115 5115 5116 /* Line 1806 of yacc.c */ 5116 5117 #line 389 "parser.yy" 5117 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }5118 break; 5119 5120 case 3 2:5118 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5119 break; 5120 5121 case 33: 5121 5122 5122 5123 /* Line 1806 of yacc.c */ 5123 5124 #line 391 "parser.yy" 5124 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }5125 break;5126 5127 case 33:5128 5129 /* Line 1806 of yacc.c */5130 #line 393 "parser.yy"5131 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }5132 break;5133 5134 case 34:5135 5136 /* Line 1806 of yacc.c */5137 #line 395 "parser.yy"5138 5125 { 5139 5126 Token fn; 5140 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'?5127 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 5141 5128 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) ); 5142 5129 } 5143 5130 break; 5144 5131 5132 case 35: 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 401 "parser.yy" 5136 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5137 break; 5138 5145 5139 case 36: 5146 5140 5147 5141 /* Line 1806 of yacc.c */ 5148 #line 405 "parser.yy" 5149 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5150 break; 5151 5152 case 37: 5153 5154 /* Line 1806 of yacc.c */ 5155 #line 410 "parser.yy" 5142 #line 406 "parser.yy" 5156 5143 { (yyval.en) = 0; } 5157 5144 break; 5158 5145 5146 case 39: 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 412 "parser.yy" 5150 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5151 break; 5152 5159 5153 case 40: 5160 5154 5161 5155 /* Line 1806 of yacc.c */ 5162 #line 41 6"parser.yy"5163 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }5156 #line 417 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5164 5158 break; 5165 5159 … … 5167 5161 5168 5162 /* Line 1806 of yacc.c */ 5163 #line 421 "parser.yy" 5164 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5165 break; 5166 5167 case 42: 5168 5169 /* Line 1806 of yacc.c */ 5169 5170 #line 423 "parser.yy" 5170 { (yyval.en) = new ExpressionNode( build_ varref( (yyvsp[(1) - (1)].tok) ) ); }5171 break; 5172 5173 case 4 2:5171 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5172 break; 5173 5174 case 43: 5174 5175 5175 5176 /* Line 1806 of yacc.c */ 5176 5177 #line 425 "parser.yy" 5177 { (yyval.en) = new ExpressionNode( build_ fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }5178 break; 5179 5180 case 4 3:5178 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5179 break; 5180 5181 case 44: 5181 5182 5182 5183 /* Line 1806 of yacc.c */ 5183 5184 #line 427 "parser.yy" 5184 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); }5185 break;5186 5187 case 44:5188 5189 /* Line 1806 of yacc.c */5190 #line 429 "parser.yy"5191 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); }5192 break;5193 5194 case 45:5195 5196 /* Line 1806 of yacc.c */5197 #line 431 "parser.yy"5198 5185 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5199 5186 break; 5200 5187 5188 case 46: 5189 5190 /* Line 1806 of yacc.c */ 5191 #line 435 "parser.yy" 5192 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5193 break; 5194 5195 case 47: 5196 5197 /* Line 1806 of yacc.c */ 5198 #line 437 "parser.yy" 5199 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5200 break; 5201 5202 case 48: 5203 5204 /* Line 1806 of yacc.c */ 5205 #line 439 "parser.yy" 5206 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5207 break; 5208 5201 5209 case 49: 5202 5210 5203 5211 /* Line 1806 of yacc.c */ 5204 5212 #line 444 "parser.yy" 5205 { (yyval.en) = (yyvsp[(1) - (1)].en); }5206 break;5207 5208 case 50:5209 5210 /* Line 1806 of yacc.c */5211 #line 446 "parser.yy"5212 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }5213 break;5214 5215 case 51:5216 5217 /* Line 1806 of yacc.c */5218 #line 448 "parser.yy"5219 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }5220 break;5221 5222 case 52:5223 5224 /* Line 1806 of yacc.c */5225 #line 453 "parser.yy"5226 5213 { 5227 5214 switch ( (yyvsp[(1) - (2)].op) ) { … … 5238 5225 break; 5239 5226 5227 case 50: 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 457 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5232 break; 5233 5234 case 51: 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 459 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5239 break; 5240 5241 case 52: 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 461 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5246 break; 5247 5240 5248 case 53: 5241 5249 5242 5250 /* Line 1806 of yacc.c */ 5243 #line 46 6"parser.yy"5244 { (yyval.en) = new ExpressionNode( build_ unary_val( (yyvsp[(1) - (2)].op),(yyvsp[(2) - (2)].en) ) ); }5251 #line 463 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5245 5253 break; 5246 5254 … … 5248 5256 5249 5257 /* Line 1806 of yacc.c */ 5250 #line 46 8"parser.yy"5251 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }5258 #line 465 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5252 5260 break; 5253 5261 … … 5255 5263 5256 5264 /* Line 1806 of yacc.c */ 5257 #line 4 70"parser.yy"5258 { (yyval.en) = new ExpressionNode( build_ unary_ptr( OperKinds::Decr,(yyvsp[(2) - (2)].en) ) ); }5265 #line 467 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5259 5267 break; 5260 5268 … … 5262 5270 5263 5271 /* Line 1806 of yacc.c */ 5264 #line 4 72"parser.yy"5265 { (yyval.en) = new ExpressionNode( build_ sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }5272 #line 469 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5266 5274 break; 5267 5275 … … 5269 5277 5270 5278 /* Line 1806 of yacc.c */ 5271 #line 47 4"parser.yy"5272 { (yyval.en) = new ExpressionNode( build_ sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }5279 #line 471 "parser.yy" 5280 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5273 5281 break; 5274 5282 … … 5276 5284 5277 5285 /* Line 1806 of yacc.c */ 5278 #line 47 6"parser.yy"5279 { (yyval.en) = new ExpressionNode( build_a lignOfexpr( (yyvsp[(2) - (2)].en)) ); }5286 #line 473 "parser.yy" 5287 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5280 5288 break; 5281 5289 … … 5283 5291 5284 5292 /* Line 1806 of yacc.c */ 5285 #line 47 8"parser.yy"5286 { (yyval.en) = new ExpressionNode( build_a lignOftype( (yyvsp[(3) - (4)].decl) ) ); }5293 #line 475 "parser.yy" 5294 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5287 5295 break; 5288 5296 … … 5290 5298 5291 5299 /* Line 1806 of yacc.c */ 5292 #line 4 80"parser.yy"5293 { (yyval.en) = new ExpressionNode( build_ offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok)) ) ); }5300 #line 477 "parser.yy" 5301 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5294 5302 break; 5295 5303 … … 5297 5305 5298 5306 /* Line 1806 of yacc.c */ 5299 #line 48 2"parser.yy"5300 { (yyval. en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }5307 #line 483 "parser.yy" 5308 { (yyval.op) = OperKinds::PointTo; } 5301 5309 break; 5302 5310 … … 5305 5313 /* Line 1806 of yacc.c */ 5306 5314 #line 484 "parser.yy" 5307 { (yyval. en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }5315 { (yyval.op) = OperKinds::AddressOf; } 5308 5316 break; 5309 5317 … … 5311 5319 5312 5320 /* Line 1806 of yacc.c */ 5313 #line 4 86"parser.yy"5314 { (yyval. en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }5321 #line 490 "parser.yy" 5322 { (yyval.op) = OperKinds::UnPlus; } 5315 5323 break; 5316 5324 … … 5318 5326 5319 5327 /* Line 1806 of yacc.c */ 5328 #line 491 "parser.yy" 5329 { (yyval.op) = OperKinds::UnMinus; } 5330 break; 5331 5332 case 65: 5333 5334 /* Line 1806 of yacc.c */ 5320 5335 #line 492 "parser.yy" 5321 { (yyval.op) = OperKinds:: PointTo; }5322 break; 5323 5324 case 6 5:5336 { (yyval.op) = OperKinds::Neg; } 5337 break; 5338 5339 case 66: 5325 5340 5326 5341 /* Line 1806 of yacc.c */ 5327 5342 #line 493 "parser.yy" 5328 { (yyval.op) = OperKinds:: AddressOf; }5329 break; 5330 5331 case 6 6:5343 { (yyval.op) = OperKinds::BitNeg; } 5344 break; 5345 5346 case 68: 5332 5347 5333 5348 /* Line 1806 of yacc.c */ 5334 5349 #line 499 "parser.yy" 5335 { (yyval.op) = OperKinds::UnPlus; } 5336 break; 5337 5338 case 67: 5339 5340 /* Line 1806 of yacc.c */ 5341 #line 500 "parser.yy" 5342 { (yyval.op) = OperKinds::UnMinus; } 5343 break; 5344 5345 case 68: 5350 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5351 break; 5352 5353 case 69: 5346 5354 5347 5355 /* Line 1806 of yacc.c */ 5348 5356 #line 501 "parser.yy" 5349 { (yyval.op) = OperKinds::Neg; } 5350 break; 5351 5352 case 69: 5353 5354 /* Line 1806 of yacc.c */ 5355 #line 502 "parser.yy" 5356 { (yyval.op) = OperKinds::BitNeg; } 5357 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5357 5358 break; 5358 5359 … … 5360 5361 5361 5362 /* Line 1806 of yacc.c */ 5362 #line 50 8"parser.yy"5363 { (yyval.en) = new ExpressionNode( build_ cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }5363 #line 507 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5364 5365 break; 5365 5366 … … 5367 5368 5368 5369 /* Line 1806 of yacc.c */ 5369 #line 5 10"parser.yy"5370 { (yyval.en) = new ExpressionNode( build_ cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }5371 break; 5372 5373 case 7 4:5374 5375 /* Line 1806 of yacc.c */ 5376 #line 51 6"parser.yy"5377 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::M ul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5370 #line 509 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5372 break; 5373 5374 case 73: 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 511 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5378 5379 break; 5379 5380 … … 5381 5382 5382 5383 /* Line 1806 of yacc.c */ 5383 #line 51 8"parser.yy"5384 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5384 #line 517 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5385 5386 break; 5386 5387 … … 5388 5389 5389 5390 /* Line 1806 of yacc.c */ 5390 #line 5 20"parser.yy"5391 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::M od, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5391 #line 519 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5392 5393 break; 5393 5394 … … 5395 5396 5396 5397 /* Line 1806 of yacc.c */ 5397 #line 52 6"parser.yy"5398 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5398 #line 525 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5399 5400 break; 5400 5401 … … 5402 5403 5403 5404 /* Line 1806 of yacc.c */ 5404 #line 52 8"parser.yy"5405 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5405 #line 527 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5406 5407 break; 5407 5408 … … 5409 5410 5410 5411 /* Line 1806 of yacc.c */ 5411 #line 53 4"parser.yy"5412 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::L Shift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5412 #line 533 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5413 5414 break; 5414 5415 … … 5416 5417 5417 5418 /* Line 1806 of yacc.c */ 5418 #line 536 "parser.yy" 5419 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5419 #line 535 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5421 break; 5422 5423 case 83: 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 537 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5420 5428 break; 5421 5429 … … 5423 5431 5424 5432 /* Line 1806 of yacc.c */ 5425 #line 542 "parser.yy" 5426 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5427 break; 5428 5429 case 85: 5430 5431 /* Line 1806 of yacc.c */ 5432 #line 544 "parser.yy" 5433 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5433 #line 539 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5434 5435 break; 5435 5436 … … 5437 5438 5438 5439 /* Line 1806 of yacc.c */ 5439 #line 54 6"parser.yy"5440 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5440 #line 545 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5441 5442 break; 5442 5443 … … 5444 5445 5445 5446 /* Line 1806 of yacc.c */ 5446 #line 54 8"parser.yy"5447 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds:: GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5447 #line 547 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5448 5449 break; 5449 5450 … … 5451 5452 5452 5453 /* Line 1806 of yacc.c */ 5453 #line 554 "parser.yy" 5454 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5455 break; 5456 5457 case 90: 5458 5459 /* Line 1806 of yacc.c */ 5460 #line 556 "parser.yy" 5461 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5462 break; 5463 5464 case 92: 5465 5466 /* Line 1806 of yacc.c */ 5467 #line 562 "parser.yy" 5454 #line 553 "parser.yy" 5468 5455 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5469 5456 break; 5470 5457 5471 case 9 4:5472 5473 /* Line 1806 of yacc.c */ 5474 #line 5 68"parser.yy"5458 case 91: 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 559 "parser.yy" 5475 5462 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5476 5463 break; 5477 5464 5478 case 9 6:5479 5480 /* Line 1806 of yacc.c */ 5481 #line 5 74"parser.yy"5465 case 93: 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 565 "parser.yy" 5482 5469 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5483 5470 break; 5484 5471 5485 case 9 8:5486 5487 /* Line 1806 of yacc.c */ 5488 #line 5 80"parser.yy"5472 case 95: 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 571 "parser.yy" 5489 5476 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5490 5477 break; 5491 5478 5479 case 97: 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 577 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5484 break; 5485 5486 case 99: 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 583 "parser.yy" 5490 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5491 break; 5492 5492 5493 case 100: 5493 5494 5494 5495 /* Line 1806 of yacc.c */ 5495 5496 #line 586 "parser.yy" 5496 { (yyval.en) = new ExpressionNode( build_ and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false) ); }5497 break; 5498 5499 case 10 2:5500 5501 /* Line 1806 of yacc.c */ 5502 #line 5 92"parser.yy"5497 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5498 break; 5499 5500 case 101: 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 588 "parser.yy" 5503 5504 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5504 5505 break; 5505 5506 5506 case 103:5507 5508 /* Line 1806 of yacc.c */5509 #line 595 "parser.yy"5510 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }5511 break;5512 5513 5507 case 104: 5514 5508 5515 5509 /* Line 1806 of yacc.c */ 5516 #line 597 "parser.yy" 5517 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5518 break; 5519 5520 case 107: 5521 5522 /* Line 1806 of yacc.c */ 5523 #line 608 "parser.yy" 5510 #line 599 "parser.yy" 5524 5511 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5525 5512 break; 5526 5513 5514 case 105: 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 601 "parser.yy" 5518 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5519 break; 5520 5521 case 106: 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 606 "parser.yy" 5525 { (yyval.en) = nullptr; } 5526 break; 5527 5527 5528 case 108: 5528 5529 5529 5530 /* Line 1806 of yacc.c */ 5530 #line 61 0"parser.yy"5531 { (yyval. en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }5531 #line 611 "parser.yy" 5532 { (yyval.op) = OperKinds::Assign; } 5532 5533 break; 5533 5534 … … 5535 5536 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 612 "parser.yy" 5539 { (yyval.op) = OperKinds::AtAssn; } 5540 break; 5541 5542 case 110: 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 613 "parser.yy" 5546 { (yyval.op) = OperKinds::MulAssn; } 5547 break; 5548 5549 case 111: 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 614 "parser.yy" 5553 { (yyval.op) = OperKinds::DivAssn; } 5554 break; 5555 5556 case 112: 5557 5558 /* Line 1806 of yacc.c */ 5537 5559 #line 615 "parser.yy" 5538 { (yyval.en) = nullptr; } 5539 break; 5540 5541 case 111: 5560 { (yyval.op) = OperKinds::ModAssn; } 5561 break; 5562 5563 case 113: 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 616 "parser.yy" 5567 { (yyval.op) = OperKinds::PlusAssn; } 5568 break; 5569 5570 case 114: 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 617 "parser.yy" 5574 { (yyval.op) = OperKinds::MinusAssn; } 5575 break; 5576 5577 case 115: 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 618 "parser.yy" 5581 { (yyval.op) = OperKinds::LSAssn; } 5582 break; 5583 5584 case 116: 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 619 "parser.yy" 5588 { (yyval.op) = OperKinds::RSAssn; } 5589 break; 5590 5591 case 117: 5542 5592 5543 5593 /* Line 1806 of yacc.c */ 5544 5594 #line 620 "parser.yy" 5545 { (yyval.op) = OperKinds::A ssign; }5546 break; 5547 5548 case 11 2:5595 { (yyval.op) = OperKinds::AndAssn; } 5596 break; 5597 5598 case 118: 5549 5599 5550 5600 /* Line 1806 of yacc.c */ 5551 5601 #line 621 "parser.yy" 5552 { (yyval.op) = OperKinds:: AtAssn; }5553 break; 5554 5555 case 11 3:5602 { (yyval.op) = OperKinds::ERAssn; } 5603 break; 5604 5605 case 119: 5556 5606 5557 5607 /* Line 1806 of yacc.c */ 5558 5608 #line 622 "parser.yy" 5559 { (yyval.op) = OperKinds::MulAssn; } 5560 break; 5561 5562 case 114: 5563 5564 /* Line 1806 of yacc.c */ 5565 #line 623 "parser.yy" 5566 { (yyval.op) = OperKinds::DivAssn; } 5567 break; 5568 5569 case 115: 5570 5571 /* Line 1806 of yacc.c */ 5572 #line 624 "parser.yy" 5573 { (yyval.op) = OperKinds::ModAssn; } 5574 break; 5575 5576 case 116: 5577 5578 /* Line 1806 of yacc.c */ 5579 #line 625 "parser.yy" 5580 { (yyval.op) = OperKinds::PlusAssn; } 5581 break; 5582 5583 case 117: 5584 5585 /* Line 1806 of yacc.c */ 5586 #line 626 "parser.yy" 5587 { (yyval.op) = OperKinds::MinusAssn; } 5588 break; 5589 5590 case 118: 5591 5592 /* Line 1806 of yacc.c */ 5593 #line 627 "parser.yy" 5594 { (yyval.op) = OperKinds::LSAssn; } 5595 break; 5596 5597 case 119: 5598 5599 /* Line 1806 of yacc.c */ 5600 #line 628 "parser.yy" 5601 { (yyval.op) = OperKinds::RSAssn; } 5609 { (yyval.op) = OperKinds::OrAssn; } 5602 5610 break; 5603 5611 … … 5606 5614 /* Line 1806 of yacc.c */ 5607 5615 #line 629 "parser.yy" 5608 { (yyval. op) = OperKinds::AndAssn; }5616 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5609 5617 break; 5610 5618 … … 5612 5620 5613 5621 /* Line 1806 of yacc.c */ 5614 #line 63 0"parser.yy"5615 { (yyval. op) = OperKinds::ERAssn; }5622 #line 631 "parser.yy" 5623 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5616 5624 break; 5617 5625 … … 5619 5627 5620 5628 /* Line 1806 of yacc.c */ 5621 #line 63 1"parser.yy"5622 { (yyval. op) = OperKinds::OrAssn; }5629 #line 633 "parser.yy" 5630 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5623 5631 break; 5624 5632 … … 5626 5634 5627 5635 /* Line 1806 of yacc.c */ 5628 #line 638 "parser.yy" 5629 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5630 break; 5631 5632 case 124: 5633 5634 /* Line 1806 of yacc.c */ 5635 #line 640 "parser.yy" 5636 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5636 #line 635 "parser.yy" 5637 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5637 5638 break; 5638 5639 … … 5640 5641 5641 5642 /* Line 1806 of yacc.c */ 5642 #line 64 2"parser.yy"5643 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) )) ); }5644 break; 5645 5646 case 12 6:5647 5648 /* Line 1806 of yacc.c */ 5649 #line 64 4"parser.yy"5650 { (yyval.en) = new ExpressionNode( build_ tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en)) ) ); }5643 #line 641 "parser.yy" 5644 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5645 break; 5646 5647 case 127: 5648 5649 /* Line 1806 of yacc.c */ 5650 #line 647 "parser.yy" 5651 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5651 5652 break; 5652 5653 … … 5654 5655 5655 5656 /* Line 1806 of yacc.c */ 5656 #line 650 "parser.yy" 5657 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5658 break; 5659 5660 case 130: 5661 5662 /* Line 1806 of yacc.c */ 5663 #line 656 "parser.yy" 5664 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5665 break; 5666 5667 case 131: 5657 #line 652 "parser.yy" 5658 { (yyval.en) = 0; } 5659 break; 5660 5661 case 132: 5668 5662 5669 5663 /* Line 1806 of yacc.c */ 5670 5664 #line 661 "parser.yy" 5671 { (yyval.en) = 0; }5672 break;5673 5674 case 135:5675 5676 /* Line 1806 of yacc.c */5677 #line 670 "parser.yy"5678 5665 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5679 5666 break; 5680 5667 5681 case 1 41:5682 5683 /* Line 1806 of yacc.c */ 5684 #line 6 77"parser.yy"5668 case 138: 5669 5670 /* Line 1806 of yacc.c */ 5671 #line 668 "parser.yy" 5685 5672 { 5686 5673 Token fn; 5687 fn.str = new st ring( "^?{}" );// location undefined5674 fn.str = new std::string( "^?{}" ); // location undefined 5688 5675 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) ); 5689 5676 } 5690 5677 break; 5691 5678 5692 case 1 42:5693 5694 /* Line 1806 of yacc.c */ 5695 #line 6 87"parser.yy"5679 case 139: 5680 5681 /* Line 1806 of yacc.c */ 5682 #line 678 "parser.yy" 5696 5683 { 5697 5684 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5699 5686 break; 5700 5687 5688 case 140: 5689 5690 /* Line 1806 of yacc.c */ 5691 #line 685 "parser.yy" 5692 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5693 break; 5694 5695 case 141: 5696 5697 /* Line 1806 of yacc.c */ 5698 #line 692 "parser.yy" 5699 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5700 break; 5701 5701 5702 case 143: 5702 5703 5703 5704 /* Line 1806 of yacc.c */ 5704 #line 69 4"parser.yy"5705 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) );}5705 #line 698 "parser.yy" 5706 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5706 5707 break; 5707 5708 … … 5709 5710 5710 5711 /* Line 1806 of yacc.c */ 5711 #line 701 "parser.yy" 5712 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5713 break; 5714 5715 case 146: 5716 5717 /* Line 1806 of yacc.c */ 5718 #line 707 "parser.yy" 5719 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5720 break; 5721 5722 case 147: 5723 5724 /* Line 1806 of yacc.c */ 5725 #line 712 "parser.yy" 5712 #line 703 "parser.yy" 5726 5713 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5727 5714 break; 5728 5715 5729 case 14 8:5730 5731 /* Line 1806 of yacc.c */ 5732 #line 7 14"parser.yy"5716 case 145: 5717 5718 /* Line 1806 of yacc.c */ 5719 #line 705 "parser.yy" 5733 5720 { // mark all fields in list 5734 5721 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5738 5725 break; 5739 5726 5727 case 146: 5728 5729 /* Line 1806 of yacc.c */ 5730 #line 711 "parser.yy" 5731 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5732 break; 5733 5740 5734 case 149: 5741 5735 5742 5736 /* Line 1806 of yacc.c */ 5743 #line 720 "parser.yy" 5744 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5737 #line 718 "parser.yy" 5738 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5739 break; 5740 5741 case 150: 5742 5743 /* Line 1806 of yacc.c */ 5744 #line 723 "parser.yy" 5745 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5746 break; 5747 5748 case 151: 5749 5750 /* Line 1806 of yacc.c */ 5751 #line 729 "parser.yy" 5752 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5745 5753 break; 5746 5754 … … 5748 5756 5749 5757 /* Line 1806 of yacc.c */ 5750 #line 7 27"parser.yy"5751 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); }}5758 #line 731 "parser.yy" 5759 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5752 5760 break; 5753 5761 … … 5755 5763 5756 5764 /* Line 1806 of yacc.c */ 5757 #line 73 2"parser.yy"5758 { (yyval.sn) = new StatementNode( build_ expr( (yyvsp[(1) - (2)].en) ) ); }5765 #line 733 "parser.yy" 5766 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5759 5767 break; 5760 5768 … … 5762 5770 5763 5771 /* Line 1806 of yacc.c */ 5764 #line 738 "parser.yy" 5765 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5766 break; 5767 5768 case 155: 5769 5770 /* Line 1806 of yacc.c */ 5771 #line 740 "parser.yy" 5772 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5773 break; 5774 5775 case 156: 5776 5777 /* Line 1806 of yacc.c */ 5778 #line 742 "parser.yy" 5779 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5780 break; 5781 5782 case 157: 5783 5784 /* Line 1806 of yacc.c */ 5785 #line 744 "parser.yy" 5772 #line 735 "parser.yy" 5786 5773 { 5787 5774 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5795 5782 break; 5796 5783 5797 case 15 8:5798 5799 /* Line 1806 of yacc.c */ 5800 #line 7 54"parser.yy"5784 case 155: 5785 5786 /* Line 1806 of yacc.c */ 5787 #line 745 "parser.yy" 5801 5788 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5802 5789 break; 5803 5790 5804 case 15 9:5805 5806 /* Line 1806 of yacc.c */ 5807 #line 7 56"parser.yy"5791 case 156: 5792 5793 /* Line 1806 of yacc.c */ 5794 #line 747 "parser.yy" 5808 5795 { 5809 5796 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5812 5799 break; 5813 5800 5801 case 157: 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 757 "parser.yy" 5805 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5806 break; 5807 5808 case 158: 5809 5810 /* Line 1806 of yacc.c */ 5811 #line 759 "parser.yy" 5812 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5813 break; 5814 5814 5815 case 160: 5815 5816 5816 5817 /* Line 1806 of yacc.c */ 5818 #line 764 "parser.yy" 5819 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5820 break; 5821 5822 case 161: 5823 5824 /* Line 1806 of yacc.c */ 5817 5825 #line 766 "parser.yy" 5818 { (yyval. en) = (yyvsp[(1) - (1)].en); }5819 break; 5820 5821 case 16 1:5822 5823 /* Line 1806 of yacc.c */ 5824 #line 7 68"parser.yy"5825 { (yyval. en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) )); }5826 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5827 break; 5828 5829 case 162: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 770 "parser.yy" 5833 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5826 5834 break; 5827 5835 … … 5829 5837 5830 5838 /* Line 1806 of yacc.c */ 5831 #line 773 "parser.yy" 5832 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5833 break; 5834 5835 case 164: 5836 5837 /* Line 1806 of yacc.c */ 5838 #line 775 "parser.yy" 5839 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5839 #line 771 "parser.yy" 5840 { (yyval.sn) = new StatementNode( build_default() ); } 5840 5841 break; 5841 5842 … … 5843 5844 5844 5845 /* Line 1806 of yacc.c */ 5845 #line 77 9"parser.yy"5846 { (yyval.sn) = ( yyvsp[(2) - (3)].sn); }5846 #line 777 "parser.yy" 5847 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5847 5848 break; 5848 5849 … … 5850 5851 5851 5852 /* Line 1806 of yacc.c */ 5852 #line 78 0"parser.yy"5853 { (yyval.sn) = new StatementNode( build_default() ); }5854 break; 5855 5856 case 16 8:5853 #line 781 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5855 break; 5856 5857 case 167: 5857 5858 5858 5859 /* Line 1806 of yacc.c */ 5859 5860 #line 786 "parser.yy" 5860 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }5861 { (yyval.sn) = 0; } 5861 5862 break; 5862 5863 … … 5864 5865 5865 5866 /* Line 1806 of yacc.c */ 5866 #line 79 0"parser.yy"5867 #line 792 "parser.yy" 5867 5868 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5868 5869 break; … … 5871 5872 5872 5873 /* Line 1806 of yacc.c */ 5873 #line 795 "parser.yy" 5874 #line 794 "parser.yy" 5875 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5876 break; 5877 5878 case 171: 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 799 "parser.yy" 5874 5882 { (yyval.sn) = 0; } 5875 5883 break; 5876 5884 5877 case 172:5878 5879 /* Line 1806 of yacc.c */5880 #line 801 "parser.yy"5881 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }5882 break;5883 5884 5885 case 173: 5885 5886 5886 5887 /* Line 1806 of yacc.c */ 5887 #line 80 3"parser.yy"5888 { (yyval.sn) = ( StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) )) ); }5888 #line 805 "parser.yy" 5889 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5889 5890 break; 5890 5891 … … 5892 5893 5893 5894 /* Line 1806 of yacc.c */ 5894 #line 808 "parser.yy" 5895 #line 807 "parser.yy" 5896 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5897 break; 5898 5899 case 175: 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 809 "parser.yy" 5903 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5904 break; 5905 5906 case 176: 5907 5908 /* Line 1806 of yacc.c */ 5909 #line 811 "parser.yy" 5910 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5911 break; 5912 5913 case 177: 5914 5915 /* Line 1806 of yacc.c */ 5916 #line 816 "parser.yy" 5917 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5918 break; 5919 5920 case 179: 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 822 "parser.yy" 5895 5924 { (yyval.sn) = 0; } 5896 5925 break; 5897 5926 5898 case 176:5899 5900 /* Line 1806 of yacc.c */5901 #line 814 "parser.yy"5902 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }5903 break;5904 5905 case 177:5906 5907 /* Line 1806 of yacc.c */5908 #line 816 "parser.yy"5909 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }5910 break;5911 5912 case 178:5913 5914 /* Line 1806 of yacc.c */5915 #line 818 "parser.yy"5916 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }5917 break;5918 5919 case 179:5920 5921 /* Line 1806 of yacc.c */5922 #line 820 "parser.yy"5923 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }5924 break;5925 5926 5927 case 180: 5927 5928 5928 5929 /* Line 1806 of yacc.c */ 5929 #line 825 "parser.yy" 5930 #line 824 "parser.yy" 5931 { (yyval.sn) = 0; } 5932 break; 5933 5934 case 181: 5935 5936 /* Line 1806 of yacc.c */ 5937 #line 829 "parser.yy" 5938 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5939 break; 5940 5941 case 182: 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 831 "parser.yy" 5945 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5946 break; 5947 5948 case 183: 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 833 "parser.yy" 5952 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5953 break; 5954 5955 case 184: 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 838 "parser.yy" 5959 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5960 break; 5961 5962 case 185: 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 840 "parser.yy" 5966 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5967 break; 5968 5969 case 186: 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 845 "parser.yy" 5973 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5974 break; 5975 5976 case 187: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 849 "parser.yy" 5980 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5981 break; 5982 5983 case 188: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 852 "parser.yy" 5987 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5988 break; 5989 5990 case 189: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 856 "parser.yy" 5994 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5995 break; 5996 5997 case 190: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 859 "parser.yy" 5930 6001 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5931 6002 break; 5932 6003 5933 case 182:5934 5935 /* Line 1806 of yacc.c */5936 #line 831 "parser.yy"5937 { (yyval.sn) = 0; }5938 break;5939 5940 case 183:5941 5942 /* Line 1806 of yacc.c */5943 #line 833 "parser.yy"5944 { (yyval.sn) = 0; }5945 break;5946 5947 case 184:5948 5949 /* Line 1806 of yacc.c */5950 #line 838 "parser.yy"5951 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }5952 break;5953 5954 case 185:5955 5956 /* Line 1806 of yacc.c */5957 #line 840 "parser.yy"5958 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }5959 break;5960 5961 case 186:5962 5963 /* Line 1806 of yacc.c */5964 #line 842 "parser.yy"5965 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }5966 break;5967 5968 case 187:5969 5970 /* Line 1806 of yacc.c */5971 #line 847 "parser.yy"5972 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }5973 break;5974 5975 case 188:5976 5977 /* Line 1806 of yacc.c */5978 #line 849 "parser.yy"5979 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }5980 break;5981 5982 case 189:5983 5984 /* Line 1806 of yacc.c */5985 #line 854 "parser.yy"5986 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }5987 break;5988 5989 case 190:5990 5991 /* Line 1806 of yacc.c */5992 #line 858 "parser.yy"5993 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }5994 break;5995 5996 6004 case 191: 5997 6005 5998 6006 /* Line 1806 of yacc.c */ 5999 #line 86 1"parser.yy"6000 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue) ); }6007 #line 863 "parser.yy" 6008 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 6001 6009 break; 6002 6010 … … 6005 6013 /* Line 1806 of yacc.c */ 6006 6014 #line 865 "parser.yy" 6007 { (yyval.sn) = new StatementNode( build_ branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue) ); }6015 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 6008 6016 break; 6009 6017 … … 6011 6019 6012 6020 /* Line 1806 of yacc.c */ 6013 #line 86 8"parser.yy"6014 { (yyval.sn) = new StatementNode( build_ branch( BranchStmt::Break) ); }6021 #line 867 "parser.yy" 6022 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6015 6023 break; 6016 6024 … … 6018 6026 6019 6027 /* Line 1806 of yacc.c */ 6020 #line 8 72"parser.yy"6021 { (yyval.sn) = new StatementNode( build_ branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break) ); }6028 #line 869 "parser.yy" 6029 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6022 6030 break; 6023 6031 … … 6025 6033 6026 6034 /* Line 1806 of yacc.c */ 6027 #line 87 4"parser.yy"6028 { (yyval.sn) = new StatementNode( build_ return( (yyvsp[(2) - (3)].en) ) ); }6035 #line 871 "parser.yy" 6036 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6029 6037 break; 6030 6038 … … 6033 6041 /* Line 1806 of yacc.c */ 6034 6042 #line 876 "parser.yy" 6035 { (yyval.sn) = new StatementNode( build_t hrow( (yyvsp[(2) - (3)].en)) ); }6043 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6036 6044 break; 6037 6045 … … 6040 6048 /* Line 1806 of yacc.c */ 6041 6049 #line 878 "parser.yy" 6042 { (yyval.sn) = new StatementNode( build_t hrow( (yyvsp[(2) - (3)].en) ) ); }6050 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 6043 6051 break; 6044 6052 … … 6047 6055 /* Line 1806 of yacc.c */ 6048 6056 #line 880 "parser.yy" 6049 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6050 break; 6051 6052 case 199: 6053 6054 /* Line 1806 of yacc.c */ 6055 #line 885 "parser.yy" 6056 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6057 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6057 6058 break; 6058 6059 … … 6061 6062 /* Line 1806 of yacc.c */ 6062 6063 #line 887 "parser.yy" 6063 { (yyval.sn) = new StatementNode( build_ try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn)) ); }6064 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6064 6065 break; 6065 6066 … … 6068 6069 /* Line 1806 of yacc.c */ 6069 6070 #line 889 "parser.yy" 6070 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6071 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6072 break; 6073 6074 case 202: 6075 6076 /* Line 1806 of yacc.c */ 6077 #line 891 "parser.yy" 6078 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6071 6079 break; 6072 6080 … … 6074 6082 6075 6083 /* Line 1806 of yacc.c */ 6076 #line 89 6"parser.yy"6077 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true) ); }6084 #line 893 "parser.yy" 6085 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6078 6086 break; 6079 6087 … … 6082 6090 /* Line 1806 of yacc.c */ 6083 6091 #line 898 "parser.yy" 6084 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true) ) ); }6092 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6085 6093 break; 6086 6094 … … 6089 6097 /* Line 1806 of yacc.c */ 6090 6098 #line 900 "parser.yy" 6091 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true) ); }6099 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6092 6100 break; 6093 6101 … … 6096 6104 /* Line 1806 of yacc.c */ 6097 6105 #line 902 "parser.yy" 6098 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true) ) ); }6106 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6099 6107 break; 6100 6108 … … 6102 6110 6103 6111 /* Line 1806 of yacc.c */ 6104 #line 90 7"parser.yy"6105 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }6112 #line 904 "parser.yy" 6113 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6106 6114 break; 6107 6115 … … 6110 6118 /* Line 1806 of yacc.c */ 6111 6119 #line 909 "parser.yy" 6112 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }6113 break;6114 6115 case 209:6116 6117 /* Line 1806 of yacc.c */6118 #line 911 "parser.yy"6119 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }6120 break;6121 6122 case 210:6123 6124 /* Line 1806 of yacc.c */6125 #line 913 "parser.yy"6126 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }6127 break;6128 6129 case 211:6130 6131 /* Line 1806 of yacc.c */6132 #line 918 "parser.yy"6133 6120 { 6134 6121 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6136 6123 break; 6137 6124 6138 case 21 3:6139 6140 /* Line 1806 of yacc.c */ 6141 #line 9 31"parser.yy"6125 case 210: 6126 6127 /* Line 1806 of yacc.c */ 6128 #line 922 "parser.yy" 6142 6129 { 6143 6130 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6146 6133 break; 6147 6134 6148 case 21 4:6149 6150 /* Line 1806 of yacc.c */ 6151 #line 9 36"parser.yy"6135 case 211: 6136 6137 /* Line 1806 of yacc.c */ 6138 #line 927 "parser.yy" 6152 6139 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6153 6140 break; 6154 6141 6155 case 21 5:6156 6157 /* Line 1806 of yacc.c */ 6158 #line 9 38"parser.yy"6142 case 212: 6143 6144 /* Line 1806 of yacc.c */ 6145 #line 929 "parser.yy" 6159 6146 { 6160 6147 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6163 6150 break; 6164 6151 6152 case 214: 6153 6154 /* Line 1806 of yacc.c */ 6155 #line 938 "parser.yy" 6156 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6157 break; 6158 6159 case 215: 6160 6161 /* Line 1806 of yacc.c */ 6162 #line 940 "parser.yy" 6163 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6164 break; 6165 6166 case 216: 6167 6168 /* Line 1806 of yacc.c */ 6169 #line 942 "parser.yy" 6170 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6171 break; 6172 6165 6173 case 217: 6166 6174 6167 6175 /* Line 1806 of yacc.c */ 6168 #line 94 7"parser.yy"6169 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0) ); }6176 #line 944 "parser.yy" 6177 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 6170 6178 break; 6171 6179 … … 6173 6181 6174 6182 /* Line 1806 of yacc.c */ 6175 #line 94 9"parser.yy"6176 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - ( 8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }6183 #line 946 "parser.yy" 6184 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 6177 6185 break; 6178 6186 … … 6181 6189 /* Line 1806 of yacc.c */ 6182 6190 #line 951 "parser.yy" 6183 { (yyval. sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }6191 { (yyval.flag) = false; } 6184 6192 break; 6185 6193 … … 6188 6196 /* Line 1806 of yacc.c */ 6189 6197 #line 953 "parser.yy" 6190 { (yyval. sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }6198 { (yyval.flag) = true; } 6191 6199 break; 6192 6200 … … 6194 6202 6195 6203 /* Line 1806 of yacc.c */ 6196 #line 955 "parser.yy" 6197 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 6198 break; 6199 6200 case 222: 6201 6202 /* Line 1806 of yacc.c */ 6203 #line 960 "parser.yy" 6204 { (yyval.flag) = false; } 6205 break; 6206 6207 case 223: 6208 6209 /* Line 1806 of yacc.c */ 6210 #line 962 "parser.yy" 6211 { (yyval.flag) = true; } 6204 #line 958 "parser.yy" 6205 { (yyval.en) = 0; } 6212 6206 break; 6213 6207 … … 6215 6209 6216 6210 /* Line 1806 of yacc.c */ 6217 #line 967 "parser.yy" 6211 #line 965 "parser.yy" 6212 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6213 break; 6214 6215 case 225: 6216 6217 /* Line 1806 of yacc.c */ 6218 #line 970 "parser.yy" 6219 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6220 break; 6221 6222 case 226: 6223 6224 /* Line 1806 of yacc.c */ 6225 #line 972 "parser.yy" 6226 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6227 break; 6228 6229 case 227: 6230 6231 /* Line 1806 of yacc.c */ 6232 #line 977 "parser.yy" 6218 6233 { (yyval.en) = 0; } 6219 6234 break; 6220 6235 6221 case 227:6222 6223 /* Line 1806 of yacc.c */6224 #line 974 "parser.yy"6225 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }6226 break;6227 6228 6236 case 228: 6229 6237 6230 6238 /* Line 1806 of yacc.c */ 6231 6239 #line 979 "parser.yy" 6232 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en)) ); }6240 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6233 6241 break; 6234 6242 … … 6237 6245 /* Line 1806 of yacc.c */ 6238 6246 #line 981 "parser.yy" 6239 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }6247 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6240 6248 break; 6241 6249 … … 6244 6252 /* Line 1806 of yacc.c */ 6245 6253 #line 986 "parser.yy" 6246 { (yyval.en) = 0; }6247 break;6248 6249 case 231:6250 6251 /* Line 1806 of yacc.c */6252 #line 988 "parser.yy"6253 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }6254 break;6255 6256 case 232:6257 6258 /* Line 1806 of yacc.c */6259 #line 990 "parser.yy"6260 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }6261 break;6262 6263 case 233:6264 6265 /* Line 1806 of yacc.c */6266 #line 995 "parser.yy"6267 6254 { 6268 6255 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6271 6258 break; 6272 6259 6273 case 23 4:6274 6275 /* Line 1806 of yacc.c */ 6276 #line 1000"parser.yy"6260 case 231: 6261 6262 /* Line 1806 of yacc.c */ 6263 #line 991 "parser.yy" 6277 6264 { 6278 6265 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6281 6268 break; 6282 6269 6270 case 232: 6271 6272 /* Line 1806 of yacc.c */ 6273 #line 1001 "parser.yy" 6274 { (yyval.decl) = 0; } 6275 break; 6276 6283 6277 case 235: 6284 6278 6285 6279 /* Line 1806 of yacc.c */ 6286 #line 1010 "parser.yy" 6280 #line 1008 "parser.yy" 6281 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6282 break; 6283 6284 case 236: 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 1013 "parser.yy" 6287 6288 { (yyval.decl) = 0; } 6288 6289 break; 6289 6290 6290 case 23 8:6291 6292 /* Line 1806 of yacc.c */ 6293 #line 10 17"parser.yy"6291 case 239: 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1020 "parser.yy" 6294 6295 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6295 6296 break; 6296 6297 6297 case 239: 6298 6299 /* Line 1806 of yacc.c */ 6300 #line 1022 "parser.yy" 6301 { (yyval.decl) = 0; } 6302 break; 6303 6304 case 242: 6305 6306 /* Line 1806 of yacc.c */ 6307 #line 1029 "parser.yy" 6308 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6309 break; 6310 6311 case 247: 6312 6313 /* Line 1806 of yacc.c */ 6314 #line 1043 "parser.yy" 6298 case 244: 6299 6300 /* Line 1806 of yacc.c */ 6301 #line 1034 "parser.yy" 6315 6302 {} 6316 6303 break; 6317 6304 6318 case 24 8:6319 6320 /* Line 1806 of yacc.c */ 6321 #line 10 44"parser.yy"6305 case 245: 6306 6307 /* Line 1806 of yacc.c */ 6308 #line 1035 "parser.yy" 6322 6309 {} 6323 6310 break; 6324 6311 6325 case 25 6:6326 6327 /* Line 1806 of yacc.c */ 6328 #line 10 73"parser.yy"6312 case 253: 6313 6314 /* Line 1806 of yacc.c */ 6315 #line 1064 "parser.yy" 6329 6316 { 6330 6317 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6333 6320 break; 6334 6321 6335 case 25 7:6336 6337 /* Line 1806 of yacc.c */ 6338 #line 10 80"parser.yy"6322 case 254: 6323 6324 /* Line 1806 of yacc.c */ 6325 #line 1071 "parser.yy" 6339 6326 { 6340 6327 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6343 6330 break; 6344 6331 6345 case 25 8:6346 6347 /* Line 1806 of yacc.c */ 6348 #line 10 85"parser.yy"6332 case 255: 6333 6334 /* Line 1806 of yacc.c */ 6335 #line 1076 "parser.yy" 6349 6336 { 6350 6337 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6353 6340 break; 6354 6341 6355 case 25 9:6356 6357 /* Line 1806 of yacc.c */ 6358 #line 10 95"parser.yy"6342 case 256: 6343 6344 /* Line 1806 of yacc.c */ 6345 #line 1086 "parser.yy" 6359 6346 { 6360 6347 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6363 6350 break; 6364 6351 6365 case 2 60:6366 6367 /* Line 1806 of yacc.c */ 6368 #line 1 100"parser.yy"6352 case 257: 6353 6354 /* Line 1806 of yacc.c */ 6355 #line 1091 "parser.yy" 6369 6356 { 6370 6357 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6373 6360 break; 6374 6361 6375 case 2 61:6376 6377 /* Line 1806 of yacc.c */ 6378 #line 1 105"parser.yy"6362 case 258: 6363 6364 /* Line 1806 of yacc.c */ 6365 #line 1096 "parser.yy" 6379 6366 { 6380 6367 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6383 6370 break; 6384 6371 6385 case 2 62:6386 6387 /* Line 1806 of yacc.c */ 6388 #line 11 13"parser.yy"6372 case 259: 6373 6374 /* Line 1806 of yacc.c */ 6375 #line 1104 "parser.yy" 6389 6376 { 6390 6377 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6393 6380 break; 6394 6381 6395 case 26 3:6396 6397 /* Line 1806 of yacc.c */ 6398 #line 11 18"parser.yy"6382 case 260: 6383 6384 /* Line 1806 of yacc.c */ 6385 #line 1109 "parser.yy" 6399 6386 { 6400 6387 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6403 6390 break; 6404 6391 6405 case 26 4:6406 6407 /* Line 1806 of yacc.c */ 6408 #line 11 23"parser.yy"6392 case 261: 6393 6394 /* Line 1806 of yacc.c */ 6395 #line 1114 "parser.yy" 6409 6396 { 6410 6397 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6413 6400 break; 6414 6401 6415 case 26 5:6416 6417 /* Line 1806 of yacc.c */ 6418 #line 11 28"parser.yy"6402 case 262: 6403 6404 /* Line 1806 of yacc.c */ 6405 #line 1119 "parser.yy" 6419 6406 { 6420 6407 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6423 6410 break; 6424 6411 6425 case 26 6:6426 6427 /* Line 1806 of yacc.c */ 6428 #line 11 33"parser.yy"6412 case 263: 6413 6414 /* Line 1806 of yacc.c */ 6415 #line 1124 "parser.yy" 6429 6416 { 6430 6417 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6433 6420 break; 6434 6421 6435 case 26 7:6436 6437 /* Line 1806 of yacc.c */ 6438 #line 11 41"parser.yy"6422 case 264: 6423 6424 /* Line 1806 of yacc.c */ 6425 #line 1132 "parser.yy" 6439 6426 { 6440 6427 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6442 6429 break; 6443 6430 6444 case 26 8:6445 6446 /* Line 1806 of yacc.c */ 6447 #line 11 64"parser.yy"6431 case 265: 6432 6433 /* Line 1806 of yacc.c */ 6434 #line 1155 "parser.yy" 6448 6435 { 6449 6436 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6451 6438 break; 6452 6439 6453 case 26 9:6454 6455 /* Line 1806 of yacc.c */ 6456 #line 11 68"parser.yy"6440 case 266: 6441 6442 /* Line 1806 of yacc.c */ 6443 #line 1159 "parser.yy" 6457 6444 { 6458 6445 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6460 6447 break; 6461 6448 6462 case 270: 6449 case 267: 6450 6451 /* Line 1806 of yacc.c */ 6452 #line 1166 "parser.yy" 6453 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6454 break; 6455 6456 case 268: 6457 6458 /* Line 1806 of yacc.c */ 6459 #line 1170 "parser.yy" 6460 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6461 break; 6462 6463 case 269: 6463 6464 6464 6465 /* Line 1806 of yacc.c */ 6465 6466 #line 1175 "parser.yy" 6466 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }6467 break;6468 6469 case 271:6470 6471 /* Line 1806 of yacc.c */6472 #line 1179 "parser.yy"6473 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }6474 break;6475 6476 case 272:6477 6478 /* Line 1806 of yacc.c */6479 #line 1184 "parser.yy"6480 6467 { 6481 6468 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6484 6471 break; 6485 6472 6486 case 27 3:6487 6488 /* Line 1806 of yacc.c */ 6489 #line 118 9"parser.yy"6473 case 270: 6474 6475 /* Line 1806 of yacc.c */ 6476 #line 1180 "parser.yy" 6490 6477 { 6491 6478 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6494 6481 break; 6495 6482 6496 case 27 4:6497 6498 /* Line 1806 of yacc.c */ 6499 #line 11 94"parser.yy"6483 case 271: 6484 6485 /* Line 1806 of yacc.c */ 6486 #line 1185 "parser.yy" 6500 6487 { 6501 6488 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6504 6491 break; 6505 6492 6506 case 27 5:6507 6508 /* Line 1806 of yacc.c */ 6509 #line 1 205"parser.yy"6493 case 272: 6494 6495 /* Line 1806 of yacc.c */ 6496 #line 1196 "parser.yy" 6510 6497 { 6511 6498 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6514 6501 break; 6515 6502 6516 case 27 6:6517 6518 /* Line 1806 of yacc.c */ 6519 #line 12 10"parser.yy"6503 case 273: 6504 6505 /* Line 1806 of yacc.c */ 6506 #line 1201 "parser.yy" 6520 6507 { 6521 6508 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6524 6511 break; 6525 6512 6526 case 27 7:6527 6528 /* Line 1806 of yacc.c */ 6529 #line 12 15"parser.yy"6513 case 274: 6514 6515 /* Line 1806 of yacc.c */ 6516 #line 1206 "parser.yy" 6530 6517 { 6531 6518 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6534 6521 break; 6535 6522 6536 case 27 8:6537 6538 /* Line 1806 of yacc.c */ 6539 #line 12 20"parser.yy"6523 case 275: 6524 6525 /* Line 1806 of yacc.c */ 6526 #line 1211 "parser.yy" 6540 6527 { 6541 6528 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6544 6531 break; 6545 6532 6546 case 27 9:6547 6548 /* Line 1806 of yacc.c */ 6549 #line 12 25"parser.yy"6533 case 276: 6534 6535 /* Line 1806 of yacc.c */ 6536 #line 1216 "parser.yy" 6550 6537 { 6551 6538 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6554 6541 break; 6555 6542 6556 case 2 80:6557 6558 /* Line 1806 of yacc.c */ 6559 #line 12 34"parser.yy"6543 case 277: 6544 6545 /* Line 1806 of yacc.c */ 6546 #line 1225 "parser.yy" 6560 6547 { 6561 6548 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6564 6551 break; 6565 6552 6566 case 2 81:6567 6568 /* Line 1806 of yacc.c */ 6569 #line 123 9"parser.yy"6553 case 278: 6554 6555 /* Line 1806 of yacc.c */ 6556 #line 1230 "parser.yy" 6570 6557 { 6571 6558 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6574 6561 break; 6575 6562 6576 case 28 6:6577 6578 /* Line 1806 of yacc.c */ 6579 #line 12 56"parser.yy"6563 case 283: 6564 6565 /* Line 1806 of yacc.c */ 6566 #line 1247 "parser.yy" 6580 6567 { 6581 6568 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6584 6571 break; 6585 6572 6586 case 28 7:6587 6588 /* Line 1806 of yacc.c */ 6589 #line 12 61"parser.yy"6573 case 284: 6574 6575 /* Line 1806 of yacc.c */ 6576 #line 1252 "parser.yy" 6590 6577 { 6591 6578 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6594 6581 break; 6595 6582 6583 case 293: 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1274 "parser.yy" 6587 { (yyval.decl) = 0; } 6588 break; 6589 6596 6590 case 296: 6597 6591 6598 6592 /* Line 1806 of yacc.c */ 6599 #line 128 3"parser.yy"6600 { (yyval.decl) = 0; }6593 #line 1286 "parser.yy" 6594 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6601 6595 break; 6602 6596 … … 6604 6598 6605 6599 /* Line 1806 of yacc.c */ 6606 #line 1295 "parser.yy" 6607 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6600 #line 1297 "parser.yy" 6601 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6602 break; 6603 6604 case 300: 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1299 "parser.yy" 6608 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6609 break; 6610 6611 case 301: 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1301 "parser.yy" 6615 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6608 6616 break; 6609 6617 … … 6611 6619 6612 6620 /* Line 1806 of yacc.c */ 6613 #line 130 6"parser.yy"6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const); }6621 #line 1303 "parser.yy" 6622 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6615 6623 break; 6616 6624 … … 6618 6626 6619 6627 /* Line 1806 of yacc.c */ 6620 #line 130 8"parser.yy"6621 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Restrict); }6628 #line 1305 "parser.yy" 6629 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6622 6630 break; 6623 6631 … … 6625 6633 6626 6634 /* Line 1806 of yacc.c */ 6627 #line 1310 "parser.yy" 6628 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6629 break; 6630 6631 case 305: 6632 6633 /* Line 1806 of yacc.c */ 6634 #line 1312 "parser.yy" 6635 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6636 break; 6637 6638 case 306: 6639 6640 /* Line 1806 of yacc.c */ 6641 #line 1314 "parser.yy" 6642 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6643 break; 6644 6645 case 307: 6646 6647 /* Line 1806 of yacc.c */ 6648 #line 1316 "parser.yy" 6635 #line 1307 "parser.yy" 6649 6636 { 6650 6637 typedefTable.enterScope(); … … 6652 6639 break; 6653 6640 6654 case 30 8:6655 6656 /* Line 1806 of yacc.c */ 6657 #line 13 20"parser.yy"6641 case 305: 6642 6643 /* Line 1806 of yacc.c */ 6644 #line 1311 "parser.yy" 6658 6645 { 6659 6646 typedefTable.leaveScope(); … … 6662 6649 break; 6663 6650 6651 case 307: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1320 "parser.yy" 6655 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6656 break; 6657 6658 case 308: 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1322 "parser.yy" 6662 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6663 break; 6664 6664 6665 case 310: 6665 6666 6666 6667 /* Line 1806 of yacc.c */ 6667 #line 13 29"parser.yy"6668 #line 1333 "parser.yy" 6668 6669 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6669 6670 break; … … 6672 6673 6673 6674 /* Line 1806 of yacc.c */ 6674 #line 1331 "parser.yy" 6675 #line 1338 "parser.yy" 6676 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6677 break; 6678 6679 case 312: 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1340 "parser.yy" 6683 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6684 break; 6685 6686 case 313: 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1342 "parser.yy" 6690 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6691 break; 6692 6693 case 314: 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1344 "parser.yy" 6697 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6698 break; 6699 6700 case 315: 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1347 "parser.yy" 6704 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6705 break; 6706 6707 case 316: 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1349 "parser.yy" 6711 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6712 break; 6713 6714 case 317: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1352 "parser.yy" 6718 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6719 break; 6720 6721 case 318: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1354 "parser.yy" 6725 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6726 break; 6727 6728 case 319: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1359 "parser.yy" 6732 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6733 break; 6734 6735 case 320: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1361 "parser.yy" 6739 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6740 break; 6741 6742 case 321: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1363 "parser.yy" 6746 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6747 break; 6748 6749 case 322: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1365 "parser.yy" 6753 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6754 break; 6755 6756 case 323: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1367 "parser.yy" 6760 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6761 break; 6762 6763 case 324: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1369 "parser.yy" 6767 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6768 break; 6769 6770 case 325: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1371 "parser.yy" 6774 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6775 break; 6776 6777 case 326: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1373 "parser.yy" 6781 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6782 break; 6783 6784 case 327: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1375 "parser.yy" 6788 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6789 break; 6790 6791 case 328: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1377 "parser.yy" 6795 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6796 break; 6797 6798 case 329: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1379 "parser.yy" 6802 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6803 break; 6804 6805 case 330: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1381 "parser.yy" 6809 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6810 break; 6811 6812 case 331: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1383 "parser.yy" 6816 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6817 break; 6818 6819 case 333: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1390 "parser.yy" 6823 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6824 break; 6825 6826 case 334: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1392 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6831 break; 6832 6833 case 335: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1394 "parser.yy" 6675 6837 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6676 6838 break; 6677 6839 6678 case 313: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1342 "parser.yy" 6840 case 336: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1396 "parser.yy" 6844 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6845 break; 6846 6847 case 338: 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1402 "parser.yy" 6851 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6852 break; 6853 6854 case 340: 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1409 "parser.yy" 6858 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6859 break; 6860 6861 case 341: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1411 "parser.yy" 6682 6865 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6683 6866 break; 6684 6867 6685 case 314: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1347 "parser.yy" 6689 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6690 break; 6691 6692 case 315: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1349 "parser.yy" 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6697 break; 6698 6699 case 316: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1351 "parser.yy" 6703 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6704 break; 6705 6706 case 317: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1353 "parser.yy" 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6711 break; 6712 6713 case 318: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1356 "parser.yy" 6717 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6718 break; 6719 6720 case 319: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1358 "parser.yy" 6724 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6725 break; 6726 6727 case 320: 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1361 "parser.yy" 6731 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6732 break; 6733 6734 case 321: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1363 "parser.yy" 6738 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6739 break; 6740 6741 case 322: 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1368 "parser.yy" 6745 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6746 break; 6747 6748 case 323: 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1370 "parser.yy" 6752 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6753 break; 6754 6755 case 324: 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1372 "parser.yy" 6759 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6760 break; 6761 6762 case 325: 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1374 "parser.yy" 6766 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6767 break; 6768 6769 case 326: 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1376 "parser.yy" 6773 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6774 break; 6775 6776 case 327: 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1378 "parser.yy" 6780 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6781 break; 6782 6783 case 328: 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1380 "parser.yy" 6787 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6788 break; 6789 6790 case 329: 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1382 "parser.yy" 6794 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6795 break; 6796 6797 case 330: 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1384 "parser.yy" 6801 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6802 break; 6803 6804 case 331: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1386 "parser.yy" 6808 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6809 break; 6810 6811 case 332: 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1388 "parser.yy" 6815 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6816 break; 6817 6818 case 333: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1390 "parser.yy" 6822 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6823 break; 6824 6825 case 334: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1392 "parser.yy" 6829 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6830 break; 6831 6832 case 336: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1399 "parser.yy" 6868 case 342: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1413 "parser.yy" 6872 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6873 break; 6874 6875 case 343: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1418 "parser.yy" 6879 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6880 break; 6881 6882 case 344: 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1420 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6887 break; 6888 6889 case 345: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1422 "parser.yy" 6893 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6894 break; 6895 6896 case 346: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1424 "parser.yy" 6900 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6901 break; 6902 6903 case 348: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1430 "parser.yy" 6836 6907 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6837 6908 break; 6838 6909 6839 case 3 37:6840 6841 /* Line 1806 of yacc.c */ 6842 #line 14 01"parser.yy"6910 case 349: 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1432 "parser.yy" 6843 6914 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6844 6915 break; 6845 6916 6846 case 3 38:6847 6848 /* Line 1806 of yacc.c */ 6849 #line 14 03"parser.yy"6917 case 350: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1434 "parser.yy" 6850 6921 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6851 6922 break; 6852 6923 6853 case 339: 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1405 "parser.yy" 6857 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6858 break; 6859 6860 case 341: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1411 "parser.yy" 6864 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6865 break; 6866 6867 case 343: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1418 "parser.yy" 6924 case 352: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1440 "parser.yy" 6871 6928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6872 6929 break; 6873 6930 6874 case 3 44:6875 6876 /* Line 1806 of yacc.c */ 6877 #line 14 20"parser.yy"6931 case 353: 6932 6933 /* Line 1806 of yacc.c */ 6934 #line 1442 "parser.yy" 6878 6935 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6879 6936 break; 6880 6937 6881 case 345: 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1422 "parser.yy" 6885 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6886 break; 6887 6888 case 346: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1427 "parser.yy" 6892 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6893 break; 6894 6895 case 347: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1429 "parser.yy" 6899 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6900 break; 6901 6902 case 348: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1431 "parser.yy" 6906 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6907 break; 6908 6909 case 349: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1433 "parser.yy" 6913 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6914 break; 6915 6916 case 351: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1439 "parser.yy" 6938 case 355: 6939 6940 /* Line 1806 of yacc.c */ 6941 #line 1448 "parser.yy" 6920 6942 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6921 6943 break; 6922 6944 6923 case 35 2:6924 6925 /* Line 1806 of yacc.c */ 6926 #line 14 41"parser.yy"6945 case 356: 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1450 "parser.yy" 6927 6949 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6928 6950 break; 6929 6951 6930 case 35 3:6931 6932 /* Line 1806 of yacc.c */ 6933 #line 14 43"parser.yy"6952 case 357: 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1452 "parser.yy" 6934 6956 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6935 6957 break; 6936 6958 6937 case 355: 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1449 "parser.yy" 6941 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6942 break; 6943 6944 case 356: 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1451 "parser.yy" 6959 case 358: 6960 6961 /* Line 1806 of yacc.c */ 6962 #line 1457 "parser.yy" 6963 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6964 break; 6965 6966 case 359: 6967 6968 /* Line 1806 of yacc.c */ 6969 #line 1459 "parser.yy" 6970 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6971 break; 6972 6973 case 360: 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1461 "parser.yy" 6948 6977 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6949 6978 break; 6950 6979 6951 case 358:6952 6953 /* Line 1806 of yacc.c */6954 #line 1457 "parser.yy"6955 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6956 break;6957 6958 case 359:6959 6960 /* Line 1806 of yacc.c */6961 #line 1459 "parser.yy"6962 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }6963 break;6964 6965 case 360:6966 6967 /* Line 1806 of yacc.c */6968 #line 1461 "parser.yy"6969 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }6970 break;6971 6972 case 361:6973 6974 /* Line 1806 of yacc.c */6975 #line 1466 "parser.yy"6976 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }6977 break;6978 6979 case 362:6980 6981 /* Line 1806 of yacc.c */6982 #line 1468 "parser.yy"6983 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }6984 break;6985 6986 6980 case 363: 6987 6981 6988 6982 /* Line 1806 of yacc.c */ 6989 #line 1470 "parser.yy" 6990 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6991 break; 6992 6993 case 366: 6994 6995 /* Line 1806 of yacc.c */ 6996 #line 1480 "parser.yy" 6997 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6998 break; 6999 7000 case 367: 7001 7002 /* Line 1806 of yacc.c */ 7003 #line 1482 "parser.yy" 6983 #line 1471 "parser.yy" 6984 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6985 break; 6986 6987 case 364: 6988 6989 /* Line 1806 of yacc.c */ 6990 #line 1473 "parser.yy" 7004 6991 { 7005 6992 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7006 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false );6993 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 7007 6994 } 7008 6995 break; 7009 6996 6997 case 365: 6998 6999 /* Line 1806 of yacc.c */ 7000 #line 1478 "parser.yy" 7001 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7002 break; 7003 7004 case 366: 7005 7006 /* Line 1806 of yacc.c */ 7007 #line 1480 "parser.yy" 7008 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 7009 break; 7010 7011 case 367: 7012 7013 /* Line 1806 of yacc.c */ 7014 #line 1482 "parser.yy" 7015 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7016 break; 7017 7010 7018 case 368: 7011 7019 7012 7020 /* Line 1806 of yacc.c */ 7013 #line 148 7"parser.yy"7014 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok)); }7021 #line 1484 "parser.yy" 7022 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7015 7023 break; 7016 7024 … … 7019 7027 /* Line 1806 of yacc.c */ 7020 7028 #line 1489 "parser.yy" 7021 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }7029 { (yyval.aggKey) = DeclarationNode::Struct; } 7022 7030 break; 7023 7031 … … 7026 7034 /* Line 1806 of yacc.c */ 7027 7035 #line 1491 "parser.yy" 7028 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }7036 { (yyval.aggKey) = DeclarationNode::Union; } 7029 7037 break; 7030 7038 … … 7032 7040 7033 7041 /* Line 1806 of yacc.c */ 7034 #line 149 3"parser.yy"7035 { (yyval.decl) = (yyvsp[(2) - (2)].decl); }7042 #line 1496 "parser.yy" 7043 { (yyval.decl) = 0; } 7036 7044 break; 7037 7045 … … 7040 7048 /* Line 1806 of yacc.c */ 7041 7049 #line 1498 "parser.yy" 7042 { (yyval.aggKey) = DeclarationNode::Struct; } 7043 break; 7044 7045 case 373: 7046 7047 /* Line 1806 of yacc.c */ 7048 #line 1500 "parser.yy" 7049 { (yyval.aggKey) = DeclarationNode::Union; } 7050 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7050 7051 break; 7051 7052 … … 7053 7054 7054 7055 /* Line 1806 of yacc.c */ 7055 #line 150 5"parser.yy"7056 { (yyval.decl) = 0; }7057 break; 7058 7059 case 37 5:7056 #line 1504 "parser.yy" 7057 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7058 break; 7059 7060 case 376: 7060 7061 7061 7062 /* Line 1806 of yacc.c */ 7062 7063 #line 1507 "parser.yy" 7063 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7064 break;7065 7066 case 377:7067 7068 /* Line 1806 of yacc.c */7069 #line 1513 "parser.yy"7070 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }7071 break;7072 7073 case 379:7074 7075 /* Line 1806 of yacc.c */7076 #line 1516 "parser.yy"7077 7064 { // mark all fields in list 7078 7065 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7082 7069 break; 7083 7070 7071 case 378: 7072 7073 /* Line 1806 of yacc.c */ 7074 #line 1517 "parser.yy" 7075 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7076 break; 7077 7078 case 379: 7079 7080 /* Line 1806 of yacc.c */ 7081 #line 1519 "parser.yy" 7082 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7083 break; 7084 7085 case 380: 7086 7087 /* Line 1806 of yacc.c */ 7088 #line 1521 "parser.yy" 7089 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7090 break; 7091 7084 7092 case 381: 7085 7093 7086 7094 /* Line 1806 of yacc.c */ 7087 7095 #line 1526 "parser.yy" 7088 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7096 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7089 7097 break; 7090 7098 … … 7093 7101 /* Line 1806 of yacc.c */ 7094 7102 #line 1528 "parser.yy" 7095 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }7103 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7096 7104 break; 7097 7105 … … 7099 7107 7100 7108 /* Line 1806 of yacc.c */ 7101 #line 153 0"parser.yy"7102 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) );}7109 #line 1533 "parser.yy" 7110 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7103 7111 break; 7104 7112 … … 7107 7115 /* Line 1806 of yacc.c */ 7108 7116 #line 1535 "parser.yy" 7109 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7117 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7110 7118 break; 7111 7119 … … 7113 7121 7114 7122 /* Line 1806 of yacc.c */ 7115 #line 153 7"parser.yy"7116 { (yyval.decl) = (yyvsp[(1) - ( 4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl)) ); }7123 #line 1538 "parser.yy" 7124 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7117 7125 break; 7118 7126 … … 7120 7128 7121 7129 /* Line 1806 of yacc.c */ 7122 #line 1542 "parser.yy" 7123 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7124 break; 7125 7126 case 387: 7127 7128 /* Line 1806 of yacc.c */ 7129 #line 1544 "parser.yy" 7130 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7130 #line 1541 "parser.yy" 7131 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7131 7132 break; 7132 7133 … … 7135 7136 /* Line 1806 of yacc.c */ 7136 7137 #line 1547 "parser.yy" 7137 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7138 { (yyval.en) = 0; } 7138 7139 break; 7139 7140 … … 7141 7142 7142 7143 /* Line 1806 of yacc.c */ 7143 #line 15 50"parser.yy"7144 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en)); }7145 break; 7146 7147 case 39 1:7148 7149 /* Line 1806 of yacc.c */ 7150 #line 155 6"parser.yy"7151 { (yyval.en) = 0; }7144 #line 1549 "parser.yy" 7145 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7146 break; 7147 7148 case 390: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1554 "parser.yy" 7152 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7152 7153 break; 7153 7154 … … 7155 7156 7156 7157 /* Line 1806 of yacc.c */ 7157 #line 15 58"parser.yy"7158 { (yyval. en) = (yyvsp[(1) - (1)].en); }7158 #line 1563 "parser.yy" 7159 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7159 7160 break; 7160 7161 … … 7162 7163 7163 7164 /* Line 1806 of yacc.c */ 7164 #line 1563 "parser.yy" 7165 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7166 break; 7167 7168 case 395: 7169 7170 /* Line 1806 of yacc.c */ 7171 #line 1572 "parser.yy" 7172 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7173 break; 7174 7175 case 396: 7176 7177 /* Line 1806 of yacc.c */ 7178 #line 1574 "parser.yy" 7165 #line 1565 "parser.yy" 7179 7166 { 7180 7167 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7183 7170 break; 7184 7171 7172 case 394: 7173 7174 /* Line 1806 of yacc.c */ 7175 #line 1570 "parser.yy" 7176 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7177 break; 7178 7179 case 395: 7180 7181 /* Line 1806 of yacc.c */ 7182 #line 1572 "parser.yy" 7183 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7184 break; 7185 7186 case 396: 7187 7188 /* Line 1806 of yacc.c */ 7189 #line 1577 "parser.yy" 7190 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7191 break; 7192 7185 7193 case 397: 7186 7194 7187 7195 /* Line 1806 of yacc.c */ 7188 7196 #line 1579 "parser.yy" 7189 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }7197 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7190 7198 break; 7191 7199 … … 7193 7201 7194 7202 /* Line 1806 of yacc.c */ 7195 #line 158 1"parser.yy"7196 { (yyval. decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }7203 #line 1584 "parser.yy" 7204 { (yyval.en) = 0; } 7197 7205 break; 7198 7206 … … 7201 7209 /* Line 1806 of yacc.c */ 7202 7210 #line 1586 "parser.yy" 7203 { (yyval. decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en)); }7211 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7204 7212 break; 7205 7213 … … 7207 7215 7208 7216 /* Line 1806 of yacc.c */ 7209 #line 1588 "parser.yy"7210 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }7211 break;7212 7213 case 401:7214 7215 /* Line 1806 of yacc.c */7216 7217 #line 1593 "parser.yy" 7217 { (yyval.en) = 0; }7218 break;7219 7220 case 402:7221 7222 /* Line 1806 of yacc.c */7223 #line 1595 "parser.yy"7224 { (yyval.en) = (yyvsp[(2) - (2)].en); }7225 break;7226 7227 case 403:7228 7229 /* Line 1806 of yacc.c */7230 #line 1602 "parser.yy"7231 7218 { (yyval.decl) = 0; } 7232 7219 break; 7233 7220 7234 case 40 7:7235 7236 /* Line 1806 of yacc.c */ 7237 #line 16 10"parser.yy"7221 case 404: 7222 7223 /* Line 1806 of yacc.c */ 7224 #line 1601 "parser.yy" 7238 7225 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7239 7226 break; 7240 7227 7228 case 405: 7229 7230 /* Line 1806 of yacc.c */ 7231 #line 1603 "parser.yy" 7232 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7233 break; 7234 7235 case 406: 7236 7237 /* Line 1806 of yacc.c */ 7238 #line 1605 "parser.yy" 7239 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7240 break; 7241 7241 7242 case 408: 7242 7243 7243 7244 /* Line 1806 of yacc.c */ 7244 #line 1612 "parser.yy" 7245 #line 1613 "parser.yy" 7246 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7247 break; 7248 7249 case 409: 7250 7251 /* Line 1806 of yacc.c */ 7252 #line 1615 "parser.yy" 7253 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7254 break; 7255 7256 case 410: 7257 7258 /* Line 1806 of yacc.c */ 7259 #line 1617 "parser.yy" 7260 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7261 break; 7262 7263 case 412: 7264 7265 /* Line 1806 of yacc.c */ 7266 #line 1623 "parser.yy" 7267 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7268 break; 7269 7270 case 413: 7271 7272 /* Line 1806 of yacc.c */ 7273 #line 1628 "parser.yy" 7274 { (yyval.decl) = 0; } 7275 break; 7276 7277 case 416: 7278 7279 /* Line 1806 of yacc.c */ 7280 #line 1635 "parser.yy" 7245 7281 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7246 7282 break; 7247 7283 7248 case 409: 7249 7250 /* Line 1806 of yacc.c */ 7251 #line 1614 "parser.yy" 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7253 break; 7254 7255 case 411: 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1622 "parser.yy" 7284 case 419: 7285 7286 /* Line 1806 of yacc.c */ 7287 #line 1642 "parser.yy" 7259 7288 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7260 7289 break; 7261 7290 7262 case 4 12:7263 7264 /* Line 1806 of yacc.c */ 7265 #line 16 24 "parser.yy"7291 case 420: 7292 7293 /* Line 1806 of yacc.c */ 7294 #line 1644 "parser.yy" 7266 7295 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7267 7296 break; 7268 7297 7269 case 413:7270 7271 /* Line 1806 of yacc.c */7272 #line 1626 "parser.yy"7273 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }7274 break;7275 7276 case 415:7277 7278 /* Line 1806 of yacc.c */7279 #line 1632 "parser.yy"7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7281 break;7282 7283 case 416:7284 7285 /* Line 1806 of yacc.c */7286 #line 1637 "parser.yy"7287 { (yyval.decl) = 0; }7288 break;7289 7290 case 419:7291 7292 /* Line 1806 of yacc.c */7293 #line 1644 "parser.yy"7294 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }7295 break;7296 7297 7298 case 422: 7298 7299 7299 7300 /* Line 1806 of yacc.c */ 7300 #line 165 1"parser.yy"7301 { (yyval.decl) = (yyvsp[(1) - ( 5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7301 #line 1653 "parser.yy" 7302 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7302 7303 break; 7303 7304 … … 7305 7306 7306 7307 /* Line 1806 of yacc.c */ 7307 #line 1653 "parser.yy" 7308 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7309 break; 7310 7311 case 425: 7312 7313 /* Line 1806 of yacc.c */ 7314 #line 1662 "parser.yy" 7308 #line 1656 "parser.yy" 7315 7309 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7316 7310 break; 7317 7311 7318 case 426: 7319 7320 /* Line 1806 of yacc.c */ 7321 #line 1665 "parser.yy" 7322 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7323 break; 7324 7325 case 427: 7326 7327 /* Line 1806 of yacc.c */ 7328 #line 1667 "parser.yy" 7312 case 424: 7313 7314 /* Line 1806 of yacc.c */ 7315 #line 1658 "parser.yy" 7329 7316 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7330 7317 break; 7331 7318 7332 case 4 32:7333 7334 /* Line 1806 of yacc.c */ 7335 #line 16 77"parser.yy"7319 case 429: 7320 7321 /* Line 1806 of yacc.c */ 7322 #line 1668 "parser.yy" 7336 7323 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7337 7324 break; 7338 7325 7339 case 43 4:7340 7341 /* Line 1806 of yacc.c */ 7342 #line 16 83"parser.yy"7326 case 431: 7327 7328 /* Line 1806 of yacc.c */ 7329 #line 1674 "parser.yy" 7343 7330 { 7344 7331 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7347 7334 break; 7348 7335 7349 case 43 5:7350 7351 /* Line 1806 of yacc.c */ 7352 #line 16 88"parser.yy"7336 case 432: 7337 7338 /* Line 1806 of yacc.c */ 7339 #line 1679 "parser.yy" 7353 7340 { 7354 7341 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7357 7344 break; 7358 7345 7359 case 437: 7346 case 434: 7347 7348 /* Line 1806 of yacc.c */ 7349 #line 1688 "parser.yy" 7350 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7351 break; 7352 7353 case 435: 7360 7354 7361 7355 /* Line 1806 of yacc.c */ 7362 7356 #line 1697 "parser.yy" 7357 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7358 break; 7359 7360 case 436: 7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1699 "parser.yy" 7364 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7365 break; 7366 7367 case 448: 7368 7369 /* Line 1806 of yacc.c */ 7370 #line 1724 "parser.yy" 7363 7371 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7364 7372 break; 7365 7373 7366 case 438: 7367 7368 /* Line 1806 of yacc.c */ 7369 #line 1706 "parser.yy" 7370 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7371 break; 7372 7373 case 439: 7374 7375 /* Line 1806 of yacc.c */ 7376 #line 1708 "parser.yy" 7377 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7378 break; 7379 7380 case 451: 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1733 "parser.yy" 7374 case 452: 7375 7376 /* Line 1806 of yacc.c */ 7377 #line 1732 "parser.yy" 7384 7378 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7385 7379 break; 7386 7380 7381 case 453: 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1737 "parser.yy" 7385 { (yyval.in) = 0; } 7386 break; 7387 7388 case 454: 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1739 "parser.yy" 7392 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7393 break; 7394 7387 7395 case 455: 7388 7396 7389 7397 /* Line 1806 of yacc.c */ 7390 7398 #line 1741 "parser.yy" 7391 { (yyval. decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl)); }7399 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7392 7400 break; 7393 7401 … … 7395 7403 7396 7404 /* Line 1806 of yacc.c */ 7405 #line 1745 "parser.yy" 7406 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7407 break; 7408 7409 case 457: 7410 7411 /* Line 1806 of yacc.c */ 7397 7412 #line 1746 "parser.yy" 7413 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7414 break; 7415 7416 case 458: 7417 7418 /* Line 1806 of yacc.c */ 7419 #line 1751 "parser.yy" 7398 7420 { (yyval.in) = 0; } 7399 7421 break; 7400 7422 7401 case 457: 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1748 "parser.yy" 7405 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7406 break; 7407 7408 case 458: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1750 "parser.yy" 7412 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7413 break; 7414 7415 case 459: 7423 case 460: 7424 7425 /* Line 1806 of yacc.c */ 7426 #line 1753 "parser.yy" 7427 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7428 break; 7429 7430 case 461: 7416 7431 7417 7432 /* Line 1806 of yacc.c */ 7418 7433 #line 1754 "parser.yy" 7419 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7420 break; 7421 7422 case 460: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1755 "parser.yy" 7426 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7427 break; 7428 7429 case 461: 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1760 "parser.yy" 7433 { (yyval.in) = 0; } 7434 break; 7435 7436 case 463: 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1762 "parser.yy" 7440 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7434 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7435 break; 7436 7437 case 462: 7438 7439 /* Line 1806 of yacc.c */ 7440 #line 1756 "parser.yy" 7441 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7441 7442 break; 7442 7443 … … 7444 7445 7445 7446 /* Line 1806 of yacc.c */ 7446 #line 17 63"parser.yy"7447 { (yyval. in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }7448 break; 7449 7450 case 46 5:7451 7452 /* Line 1806 of yacc.c */ 7453 #line 17 65"parser.yy"7454 { (yyval. in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en)) ) ); }7447 #line 1772 "parser.yy" 7448 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7449 break; 7450 7451 case 466: 7452 7453 /* Line 1806 of yacc.c */ 7454 #line 1778 "parser.yy" 7455 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7455 7456 break; 7456 7457 … … 7458 7459 7459 7460 /* Line 1806 of yacc.c */ 7460 #line 1781 "parser.yy" 7461 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7461 #line 1784 "parser.yy" 7462 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7463 break; 7464 7465 case 468: 7466 7467 /* Line 1806 of yacc.c */ 7468 #line 1787 "parser.yy" 7469 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7462 7470 break; 7463 7471 … … 7465 7473 7466 7474 /* Line 1806 of yacc.c */ 7467 #line 178 7"parser.yy"7468 { (yyval.en) = ( ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) )); }7475 #line 1789 "parser.yy" 7476 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7469 7477 break; 7470 7478 … … 7472 7480 7473 7481 /* Line 1806 of yacc.c */ 7482 #line 1791 "parser.yy" 7483 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7484 break; 7485 7486 case 471: 7487 7488 /* Line 1806 of yacc.c */ 7474 7489 #line 1793 "parser.yy" 7475 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7476 break; 7477 7478 case 471: 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1796 "parser.yy" 7482 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7483 break; 7484 7485 case 472: 7486 7487 /* Line 1806 of yacc.c */ 7488 #line 1798 "parser.yy" 7489 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7490 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7490 7491 break; 7491 7492 … … 7493 7494 7494 7495 /* Line 1806 of yacc.c */ 7495 #line 18 00"parser.yy"7496 { (yyval. en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)) ); }7496 #line 1817 "parser.yy" 7497 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7497 7498 break; 7498 7499 … … 7500 7501 7501 7502 /* Line 1806 of yacc.c */ 7502 #line 1802 "parser.yy" 7503 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7504 break; 7505 7506 case 476: 7507 7508 /* Line 1806 of yacc.c */ 7509 #line 1826 "parser.yy" 7503 #line 1819 "parser.yy" 7504 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7505 break; 7506 7507 case 475: 7508 7509 /* Line 1806 of yacc.c */ 7510 #line 1821 "parser.yy" 7511 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7512 break; 7513 7514 case 477: 7515 7516 /* Line 1806 of yacc.c */ 7517 #line 1827 "parser.yy" 7510 7518 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7511 7519 break; 7512 7520 7513 case 47 7:7514 7515 /* Line 1806 of yacc.c */ 7516 #line 182 8"parser.yy"7521 case 478: 7522 7523 /* Line 1806 of yacc.c */ 7524 #line 1829 "parser.yy" 7517 7525 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7518 7526 break; 7519 7527 7520 case 478: 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1830 "parser.yy" 7524 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7525 break; 7526 7527 case 480: 7528 7529 /* Line 1806 of yacc.c */ 7530 #line 1836 "parser.yy" 7531 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7528 case 479: 7529 7530 /* Line 1806 of yacc.c */ 7531 #line 1834 "parser.yy" 7532 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7532 7533 break; 7533 7534 … … 7535 7536 7536 7537 /* Line 1806 of yacc.c */ 7537 #line 18 38"parser.yy"7538 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7538 #line 1840 "parser.yy" 7539 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7539 7540 break; 7540 7541 … … 7542 7543 7543 7544 /* Line 1806 of yacc.c */ 7544 #line 184 3"parser.yy"7545 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en)); }7546 break; 7547 7548 case 48 4:7549 7550 /* Line 1806 of yacc.c */ 7551 #line 184 9"parser.yy"7552 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }7545 #line 1845 "parser.yy" 7546 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7547 break; 7548 7549 case 483: 7550 7551 /* Line 1806 of yacc.c */ 7552 #line 1847 "parser.yy" 7553 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7553 7554 break; 7554 7555 … … 7556 7557 7557 7558 /* Line 1806 of yacc.c */ 7558 #line 185 4"parser.yy"7559 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }7559 #line 1853 "parser.yy" 7560 { (yyval.tclass) = DeclarationNode::Otype; } 7560 7561 break; 7561 7562 … … 7563 7564 7564 7565 /* Line 1806 of yacc.c */ 7565 #line 1856 "parser.yy" 7566 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7566 #line 1855 "parser.yy" 7567 { (yyval.tclass) = DeclarationNode::Ftype; } 7568 break; 7569 7570 case 487: 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1857 "parser.yy" 7574 { (yyval.tclass) = DeclarationNode::Dtype; } 7567 7575 break; 7568 7576 … … 7571 7579 /* Line 1806 of yacc.c */ 7572 7580 #line 1862 "parser.yy" 7573 { (yyval. tclass) = DeclarationNode::Otype; }7581 { (yyval.decl) = 0; } 7574 7582 break; 7575 7583 … … 7578 7586 /* Line 1806 of yacc.c */ 7579 7587 #line 1864 "parser.yy" 7580 { (yyval. tclass) = DeclarationNode::Ftype; }7588 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7581 7589 break; 7582 7590 … … 7584 7592 7585 7593 /* Line 1806 of yacc.c */ 7586 #line 1866 "parser.yy" 7587 { (yyval.tclass) = DeclarationNode::Dtype; } 7588 break; 7589 7590 case 491: 7591 7592 /* Line 1806 of yacc.c */ 7593 #line 1871 "parser.yy" 7594 { (yyval.decl) = 0; } 7595 break; 7596 7597 case 492: 7598 7599 /* Line 1806 of yacc.c */ 7600 #line 1873 "parser.yy" 7601 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7602 break; 7603 7604 case 493: 7605 7606 /* Line 1806 of yacc.c */ 7607 #line 1878 "parser.yy" 7594 #line 1869 "parser.yy" 7608 7595 { 7609 7596 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7612 7599 break; 7613 7600 7614 case 49 4:7615 7616 /* Line 1806 of yacc.c */ 7617 #line 18 83"parser.yy"7601 case 491: 7602 7603 /* Line 1806 of yacc.c */ 7604 #line 1874 "parser.yy" 7618 7605 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7619 7606 break; 7620 7607 7608 case 492: 7609 7610 /* Line 1806 of yacc.c */ 7611 #line 1876 "parser.yy" 7612 { (yyval.decl) = 0; } 7613 break; 7614 7615 case 493: 7616 7617 /* Line 1806 of yacc.c */ 7618 #line 1881 "parser.yy" 7619 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7620 break; 7621 7621 7622 case 495: 7622 7623 7623 7624 /* Line 1806 of yacc.c */ 7624 #line 188 5"parser.yy"7625 { (yyval. decl) = 0; }7625 #line 1884 "parser.yy" 7626 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7626 7627 break; 7627 7628 … … 7629 7630 7630 7631 /* Line 1806 of yacc.c */ 7631 #line 1890 "parser.yy" 7632 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7632 #line 1886 "parser.yy" 7633 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7634 break; 7635 7636 case 497: 7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1891 "parser.yy" 7640 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7633 7641 break; 7634 7642 … … 7637 7645 /* Line 1806 of yacc.c */ 7638 7646 #line 1893 "parser.yy" 7639 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) )) ); }7647 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7640 7648 break; 7641 7649 … … 7644 7652 /* Line 1806 of yacc.c */ 7645 7653 #line 1895 "parser.yy" 7646 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }7654 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7647 7655 break; 7648 7656 … … 7651 7659 /* Line 1806 of yacc.c */ 7652 7660 #line 1900 "parser.yy" 7653 { (yyval.decl) = (yyvsp[( 2) - (2)].decl); }7661 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7654 7662 break; 7655 7663 … … 7658 7666 /* Line 1806 of yacc.c */ 7659 7667 #line 1902 "parser.yy" 7660 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }7668 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7661 7669 break; 7662 7670 … … 7664 7672 7665 7673 /* Line 1806 of yacc.c */ 7666 #line 1904 "parser.yy" 7667 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7668 break; 7669 7670 case 503: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1909 "parser.yy" 7674 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7675 break; 7676 7677 case 504: 7678 7679 /* Line 1806 of yacc.c */ 7680 #line 1911 "parser.yy" 7681 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7682 break; 7683 7684 case 505: 7685 7686 /* Line 1806 of yacc.c */ 7687 #line 1916 "parser.yy" 7674 #line 1907 "parser.yy" 7688 7675 { 7689 7676 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7692 7679 break; 7693 7680 7694 case 50 6:7695 7696 /* Line 1806 of yacc.c */ 7697 #line 19 21"parser.yy"7681 case 503: 7682 7683 /* Line 1806 of yacc.c */ 7684 #line 1912 "parser.yy" 7698 7685 { 7699 7686 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7702 7689 break; 7703 7690 7704 case 50 7:7705 7706 /* Line 1806 of yacc.c */ 7707 #line 192 9"parser.yy"7691 case 504: 7692 7693 /* Line 1806 of yacc.c */ 7694 #line 1920 "parser.yy" 7708 7695 { 7709 7696 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7712 7699 break; 7713 7700 7714 case 50 8:7715 7716 /* Line 1806 of yacc.c */ 7717 #line 19 34"parser.yy"7701 case 505: 7702 7703 /* Line 1806 of yacc.c */ 7704 #line 1925 "parser.yy" 7718 7705 { 7719 7706 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7722 7709 break; 7723 7710 7724 case 50 9:7725 7726 /* Line 1806 of yacc.c */ 7727 #line 193 9"parser.yy"7711 case 506: 7712 7713 /* Line 1806 of yacc.c */ 7714 #line 1930 "parser.yy" 7728 7715 { 7729 7716 typedefTable.leaveTrait(); … … 7733 7720 break; 7734 7721 7722 case 508: 7723 7724 /* Line 1806 of yacc.c */ 7725 #line 1940 "parser.yy" 7726 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7727 break; 7728 7735 7729 case 511: 7736 7730 7737 7731 /* Line 1806 of yacc.c */ 7738 #line 1949 "parser.yy" 7739 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7740 break; 7741 7742 case 514: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1959 "parser.yy" 7732 #line 1950 "parser.yy" 7746 7733 { 7747 7734 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7750 7737 break; 7751 7738 7752 case 51 5:7753 7754 /* Line 1806 of yacc.c */ 7755 #line 19 64"parser.yy"7739 case 512: 7740 7741 /* Line 1806 of yacc.c */ 7742 #line 1955 "parser.yy" 7756 7743 { 7757 7744 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7760 7747 break; 7761 7748 7762 case 51 6:7763 7764 /* Line 1806 of yacc.c */ 7765 #line 196 9"parser.yy"7749 case 513: 7750 7751 /* Line 1806 of yacc.c */ 7752 #line 1960 "parser.yy" 7766 7753 { 7767 7754 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7770 7757 break; 7771 7758 7772 case 51 7:7773 7774 /* Line 1806 of yacc.c */ 7775 #line 19 77"parser.yy"7759 case 514: 7760 7761 /* Line 1806 of yacc.c */ 7762 #line 1968 "parser.yy" 7776 7763 { 7777 7764 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7780 7767 break; 7781 7768 7782 case 51 8:7783 7784 /* Line 1806 of yacc.c */ 7785 #line 19 82"parser.yy"7769 case 515: 7770 7771 /* Line 1806 of yacc.c */ 7772 #line 1973 "parser.yy" 7786 7773 { 7787 7774 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7790 7777 break; 7791 7778 7779 case 516: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 1983 "parser.yy" 7783 {} 7784 break; 7785 7786 case 517: 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 1985 "parser.yy" 7790 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7791 break; 7792 7792 7793 case 519: 7793 7794 7794 7795 /* Line 1806 of yacc.c */ 7795 #line 1992 "parser.yy" 7796 #line 1991 "parser.yy" 7797 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7798 break; 7799 7800 case 520: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 1996 "parser.yy" 7804 { (yyval.decl) = 0; } 7805 break; 7806 7807 case 524: 7808 7809 /* Line 1806 of yacc.c */ 7810 #line 2004 "parser.yy" 7796 7811 {} 7797 7812 break; 7798 7813 7799 case 520: 7800 7801 /* Line 1806 of yacc.c */ 7802 #line 1994 "parser.yy" 7803 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7804 break; 7805 7806 case 522: 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 2000 "parser.yy" 7810 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7811 break; 7812 7813 case 523: 7814 7815 /* Line 1806 of yacc.c */ 7816 #line 2005 "parser.yy" 7817 { (yyval.decl) = 0; } 7818 break; 7819 7820 case 527: 7821 7822 /* Line 1806 of yacc.c */ 7823 #line 2013 "parser.yy" 7824 {} 7825 break; 7826 7827 case 528: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 2015 "parser.yy" 7814 case 525: 7815 7816 /* Line 1806 of yacc.c */ 7817 #line 2006 "parser.yy" 7831 7818 { 7832 7819 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 7833 linkage = LinkageSpec:: linkageCheck((yyvsp[(2) - (2)].tok) );7820 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) ); 7834 7821 } 7835 7822 break; 7836 7823 7837 case 52 9:7838 7839 /* Line 1806 of yacc.c */ 7840 #line 20 20"parser.yy"7824 case 526: 7825 7826 /* Line 1806 of yacc.c */ 7827 #line 2011 "parser.yy" 7841 7828 { 7842 7829 linkage = linkageStack.top(); … … 7846 7833 break; 7847 7834 7848 case 5 30:7849 7850 /* Line 1806 of yacc.c */ 7851 #line 20 26"parser.yy"7835 case 527: 7836 7837 /* Line 1806 of yacc.c */ 7838 #line 2017 "parser.yy" 7852 7839 { // mark all fields in list 7853 7840 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7857 7844 break; 7858 7845 7859 case 5 32:7860 7861 /* Line 1806 of yacc.c */ 7862 #line 20 41"parser.yy"7846 case 529: 7847 7848 /* Line 1806 of yacc.c */ 7849 #line 2032 "parser.yy" 7863 7850 { 7864 7851 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7868 7855 break; 7869 7856 7870 case 53 3:7871 7872 /* Line 1806 of yacc.c */ 7873 #line 20 47"parser.yy"7857 case 530: 7858 7859 /* Line 1806 of yacc.c */ 7860 #line 2038 "parser.yy" 7874 7861 { 7875 7862 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7879 7866 break; 7880 7867 7881 case 53 4:7882 7883 /* Line 1806 of yacc.c */ 7884 #line 20 56"parser.yy"7868 case 531: 7869 7870 /* Line 1806 of yacc.c */ 7871 #line 2047 "parser.yy" 7885 7872 { 7886 7873 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7890 7877 break; 7891 7878 7892 case 53 5:7893 7894 /* Line 1806 of yacc.c */ 7895 #line 20 62"parser.yy"7879 case 532: 7880 7881 /* Line 1806 of yacc.c */ 7882 #line 2053 "parser.yy" 7896 7883 { 7897 7884 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7901 7888 break; 7902 7889 7903 case 53 6:7904 7905 /* Line 1806 of yacc.c */ 7906 #line 20 68"parser.yy"7890 case 533: 7891 7892 /* Line 1806 of yacc.c */ 7893 #line 2059 "parser.yy" 7907 7894 { 7908 7895 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7912 7899 break; 7913 7900 7914 case 53 7:7915 7916 /* Line 1806 of yacc.c */ 7917 #line 20 74"parser.yy"7901 case 534: 7902 7903 /* Line 1806 of yacc.c */ 7904 #line 2065 "parser.yy" 7918 7905 { 7919 7906 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7923 7910 break; 7924 7911 7925 case 53 8:7926 7927 /* Line 1806 of yacc.c */ 7928 #line 20 80"parser.yy"7912 case 535: 7913 7914 /* Line 1806 of yacc.c */ 7915 #line 2071 "parser.yy" 7929 7916 { 7930 7917 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7934 7921 break; 7935 7922 7936 case 53 9:7937 7938 /* Line 1806 of yacc.c */ 7939 #line 20 88"parser.yy"7923 case 536: 7924 7925 /* Line 1806 of yacc.c */ 7926 #line 2079 "parser.yy" 7940 7927 { 7941 7928 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7945 7932 break; 7946 7933 7947 case 5 40:7948 7949 /* Line 1806 of yacc.c */ 7950 #line 20 94"parser.yy"7934 case 537: 7935 7936 /* Line 1806 of yacc.c */ 7937 #line 2085 "parser.yy" 7951 7938 { 7952 7939 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7956 7943 break; 7957 7944 7958 case 5 41:7959 7960 /* Line 1806 of yacc.c */ 7961 #line 2 102"parser.yy"7945 case 538: 7946 7947 /* Line 1806 of yacc.c */ 7948 #line 2093 "parser.yy" 7962 7949 { 7963 7950 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7967 7954 break; 7968 7955 7969 case 5 42:7970 7971 /* Line 1806 of yacc.c */ 7972 #line 2 108"parser.yy"7956 case 539: 7957 7958 /* Line 1806 of yacc.c */ 7959 #line 2099 "parser.yy" 7973 7960 { 7974 7961 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7978 7965 break; 7979 7966 7967 case 543: 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2114 "parser.yy" 7971 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7972 break; 7973 7974 case 545: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2119 "parser.yy" 7978 { delete (yyvsp[(3) - (5)].str); } 7979 break; 7980 7980 7981 case 546: 7981 7982 7982 7983 /* Line 1806 of yacc.c */ 7983 #line 2123 "parser.yy" 7984 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7985 break; 7986 7987 case 548: 7988 7989 /* Line 1806 of yacc.c */ 7990 #line 2128 "parser.yy" 7991 { delete (yyvsp[(3) - (5)].str); } 7984 #line 2124 "parser.yy" 7985 { (yyval.decl) = 0; } 7992 7986 break; 7993 7987 … … 7995 7989 7996 7990 /* Line 1806 of yacc.c */ 7997 #line 2133 "parser.yy" 7991 #line 2131 "parser.yy" 7992 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7993 break; 7994 7995 case 550: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2137 "parser.yy" 7998 7999 { (yyval.decl) = 0; } 7999 8000 break; 8000 8001 8001 case 552: 8002 8003 /* Line 1806 of yacc.c */ 8004 #line 2140 "parser.yy" 8005 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8006 break; 8007 8008 case 553: 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2146 "parser.yy" 8012 { (yyval.decl) = 0; } 8002 case 555: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2148 "parser.yy" 8006 { delete (yyvsp[(3) - (4)].en); } 8007 break; 8008 8009 case 556: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2152 "parser.yy" 8013 { delete (yyvsp[(1) - (1)].tok); } 8014 break; 8015 8016 case 557: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2153 "parser.yy" 8020 { delete (yyvsp[(1) - (1)].decl); } 8013 8021 break; 8014 8022 … … 8016 8024 8017 8025 /* Line 1806 of yacc.c */ 8018 #line 215 7"parser.yy"8019 { delete (yyvsp[( 3) - (4)].en); }8026 #line 2154 "parser.yy" 8027 { delete (yyvsp[(1) - (1)].decl); } 8020 8028 break; 8021 8029 … … 8023 8031 8024 8032 /* Line 1806 of yacc.c */ 8025 #line 21 61"parser.yy"8026 { delete (yyvsp[(1) - (1)]. tok); }8033 #line 2155 "parser.yy" 8034 { delete (yyvsp[(1) - (1)].decl); } 8027 8035 break; 8028 8036 … … 8030 8038 8031 8039 /* Line 1806 of yacc.c */ 8032 #line 2162 "parser.yy" 8033 { delete (yyvsp[(1) - (1)].decl); } 8034 break; 8035 8036 case 561: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2163 "parser.yy" 8040 { delete (yyvsp[(1) - (1)].decl); } 8040 #line 2190 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8041 8042 break; 8042 8043 … … 8044 8045 8045 8046 /* Line 1806 of yacc.c */ 8046 #line 21 64"parser.yy"8047 { delete (yyvsp[(1) - (1)].decl); }8047 #line 2193 "parser.yy" 8048 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8048 8049 break; 8049 8050 … … 8051 8052 8052 8053 /* Line 1806 of yacc.c */ 8053 #line 219 9"parser.yy"8054 #line 2195 "parser.yy" 8054 8055 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8055 8056 break; 8056 8057 8057 case 565: 8058 8059 /* Line 1806 of yacc.c */ 8060 #line 2202 "parser.yy" 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8062 break; 8063 8064 case 566: 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2204 "parser.yy" 8068 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8069 break; 8070 8071 case 567: 8072 8073 /* Line 1806 of yacc.c */ 8074 #line 2209 "parser.yy" 8058 case 564: 8059 8060 /* Line 1806 of yacc.c */ 8061 #line 2200 "parser.yy" 8075 8062 { 8076 8063 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8079 8066 break; 8080 8067 8068 case 565: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2205 "parser.yy" 8072 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8073 break; 8074 8075 case 566: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2210 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8080 break; 8081 8082 case 567: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2212 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8087 break; 8088 8081 8089 case 568: 8082 8090 … … 8090 8098 /* Line 1806 of yacc.c */ 8091 8099 #line 2219 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8101 break; 8102 8103 case 570: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2221 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8108 break; 8109 8110 case 571: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2223 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8115 break; 8116 8117 case 572: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2225 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8122 break; 8123 8124 case 573: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2230 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8129 break; 8130 8131 case 574: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2232 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8136 break; 8137 8138 case 575: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2241 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8143 break; 8144 8145 case 577: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2244 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8150 break; 8151 8152 case 578: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2249 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8157 break; 8158 8159 case 579: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2251 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8164 break; 8165 8166 case 580: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2253 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8171 break; 8172 8173 case 581: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2258 "parser.yy" 8092 8177 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8093 8178 break; 8094 8179 8095 case 5 70:8096 8097 /* Line 1806 of yacc.c */ 8098 #line 22 21"parser.yy"8180 case 582: 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2260 "parser.yy" 8099 8184 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8100 break;8101 8102 case 571:8103 8104 /* Line 1806 of yacc.c */8105 #line 2223 "parser.yy"8106 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8107 break;8108 8109 case 572:8110 8111 /* Line 1806 of yacc.c */8112 #line 2228 "parser.yy"8113 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8114 break;8115 8116 case 573:8117 8118 /* Line 1806 of yacc.c */8119 #line 2230 "parser.yy"8120 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8121 break;8122 8123 case 574:8124 8125 /* Line 1806 of yacc.c */8126 #line 2232 "parser.yy"8127 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8128 break;8129 8130 case 575:8131 8132 /* Line 1806 of yacc.c */8133 #line 2234 "parser.yy"8134 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8135 break;8136 8137 case 576:8138 8139 /* Line 1806 of yacc.c */8140 #line 2239 "parser.yy"8141 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8142 break;8143 8144 case 577:8145 8146 /* Line 1806 of yacc.c */8147 #line 2241 "parser.yy"8148 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8149 break;8150 8151 case 578:8152 8153 /* Line 1806 of yacc.c */8154 #line 2250 "parser.yy"8155 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8156 break;8157 8158 case 580:8159 8160 /* Line 1806 of yacc.c */8161 #line 2253 "parser.yy"8162 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8163 break;8164 8165 case 581:8166 8167 /* Line 1806 of yacc.c */8168 #line 2258 "parser.yy"8169 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8170 break;8171 8172 case 582:8173 8174 /* Line 1806 of yacc.c */8175 #line 2260 "parser.yy"8176 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8177 8185 break; 8178 8186 … … 8188 8196 /* Line 1806 of yacc.c */ 8189 8197 #line 2267 "parser.yy" 8190 { (yyval.decl) = (yyvsp[(2) - ( 2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8198 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8191 8199 break; 8192 8200 … … 8195 8203 /* Line 1806 of yacc.c */ 8196 8204 #line 2269 "parser.yy" 8197 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl)) ); }8205 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8198 8206 break; 8199 8207 … … 8205 8213 break; 8206 8214 8207 case 5 87:8208 8209 /* Line 1806 of yacc.c */ 8210 #line 22 76 "parser.yy"8211 { (yyval.decl) = (yyvsp[( 2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8212 break; 8213 8214 case 5 88:8215 8216 /* Line 1806 of yacc.c */ 8217 #line 22 78 "parser.yy"8218 { (yyval.decl) = (yyvsp[(2) - ( 4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8219 break; 8220 8221 case 5 89:8222 8223 /* Line 1806 of yacc.c */ 8224 #line 22 80 "parser.yy"8215 case 590: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2286 "parser.yy" 8219 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8220 break; 8221 8222 case 591: 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2288 "parser.yy" 8226 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8227 break; 8228 8229 case 592: 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2290 "parser.yy" 8225 8233 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8226 8234 break; … … 8230 8238 /* Line 1806 of yacc.c */ 8231 8239 #line 2295 "parser.yy" 8232 { (yyval.decl) = (yyvsp[( 1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }8240 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8233 8241 break; 8234 8242 … … 8237 8245 /* Line 1806 of yacc.c */ 8238 8246 #line 2297 "parser.yy" 8239 { (yyval.decl) = (yyvsp[( 2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }8247 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8240 8248 break; 8241 8249 … … 8251 8259 /* Line 1806 of yacc.c */ 8252 8260 #line 2304 "parser.yy" 8253 { (yyval.decl) = (yyvsp[(2) - ( 2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8261 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8254 8262 break; 8255 8263 … … 8258 8266 /* Line 1806 of yacc.c */ 8259 8267 #line 2306 "parser.yy" 8260 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl)) ); }8268 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8261 8269 break; 8262 8270 … … 8271 8279 8272 8280 /* Line 1806 of yacc.c */ 8273 #line 2313 "parser.yy" 8274 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8275 break; 8276 8277 case 600: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2315 "parser.yy" 8281 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8281 #line 2323 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8282 8283 break; 8283 8284 … … 8285 8286 8286 8287 /* Line 1806 of yacc.c */ 8287 #line 2317 "parser.yy" 8288 #line 2326 "parser.yy" 8289 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8290 break; 8291 8292 case 602: 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2328 "parser.yy" 8296 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8297 break; 8298 8299 case 604: 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2334 "parser.yy" 8288 8303 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8289 8304 break; 8290 8305 8291 case 602:8292 8293 /* Line 1806 of yacc.c */8294 #line 2332 "parser.yy"8295 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8296 break;8297 8298 case 604:8299 8300 /* Line 1806 of yacc.c */8301 #line 2335 "parser.yy"8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8303 break;8304 8305 8306 case 605: 8306 8307 8307 8308 /* Line 1806 of yacc.c */ 8308 #line 2337 "parser.yy" 8309 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8309 #line 2339 "parser.yy" 8310 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8311 break; 8312 8313 case 606: 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2341 "parser.yy" 8317 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8310 8318 break; 8311 8319 … … 8321 8329 /* Line 1806 of yacc.c */ 8322 8330 #line 2348 "parser.yy" 8323 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8331 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8324 8332 break; 8325 8333 … … 8328 8336 /* Line 1806 of yacc.c */ 8329 8337 #line 2350 "parser.yy" 8330 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl)) ); }8338 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8331 8339 break; 8332 8340 … … 8335 8343 /* Line 1806 of yacc.c */ 8336 8344 #line 2352 "parser.yy" 8345 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8346 break; 8347 8348 case 611: 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2354 "parser.yy" 8337 8352 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8338 8353 break; 8339 8354 8340 case 611:8341 8342 /* Line 1806 of yacc.c */8343 #line 2357 "parser.yy"8344 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8345 break;8346 8347 8355 case 612: 8348 8356 8349 8357 /* Line 1806 of yacc.c */ 8350 8358 #line 2359 "parser.yy" 8351 { (yyval.decl) = (yyvsp[( 2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8359 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8352 8360 break; 8353 8361 … … 8356 8364 /* Line 1806 of yacc.c */ 8357 8365 #line 2361 "parser.yy" 8358 { (yyval.decl) = (yyvsp[(2) - ( 4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8366 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 8367 break; 8360 8368 … … 8369 8377 8370 8378 /* Line 1806 of yacc.c */ 8371 #line 2368 "parser.yy" 8379 #line 2373 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8381 break; 8382 8383 case 617: 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2376 "parser.yy" 8387 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8388 break; 8389 8390 case 618: 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2378 "parser.yy" 8394 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8395 break; 8396 8397 case 619: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2383 "parser.yy" 8401 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8402 break; 8403 8404 case 620: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2385 "parser.yy" 8408 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8409 break; 8410 8411 case 621: 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2387 "parser.yy" 8415 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8416 break; 8417 8418 case 622: 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2392 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8423 break; 8424 8425 case 623: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2394 "parser.yy" 8429 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8430 break; 8431 8432 case 624: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2396 "parser.yy" 8436 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8437 break; 8438 8439 case 625: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2398 "parser.yy" 8443 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8444 break; 8445 8446 case 626: 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2403 "parser.yy" 8372 8450 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8373 8451 break; 8374 8452 8375 case 6 16:8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2 370"parser.yy"8453 case 627: 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2405 "parser.yy" 8379 8457 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8380 break;8381 8382 case 617:8383 8384 /* Line 1806 of yacc.c */8385 #line 2372 "parser.yy"8386 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8387 break;8388 8389 case 618:8390 8391 /* Line 1806 of yacc.c */8392 #line 2382 "parser.yy"8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8394 break;8395 8396 case 620:8397 8398 /* Line 1806 of yacc.c */8399 #line 2385 "parser.yy"8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8401 break;8402 8403 case 621:8404 8405 /* Line 1806 of yacc.c */8406 #line 2387 "parser.yy"8407 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8408 break;8409 8410 case 622:8411 8412 /* Line 1806 of yacc.c */8413 #line 2392 "parser.yy"8414 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8415 break;8416 8417 case 623:8418 8419 /* Line 1806 of yacc.c */8420 #line 2394 "parser.yy"8421 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8422 break;8423 8424 case 624:8425 8426 /* Line 1806 of yacc.c */8427 #line 2396 "parser.yy"8428 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8429 break;8430 8431 case 625:8432 8433 /* Line 1806 of yacc.c */8434 #line 2401 "parser.yy"8435 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8436 break;8437 8438 case 626:8439 8440 /* Line 1806 of yacc.c */8441 #line 2403 "parser.yy"8442 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8443 break;8444 8445 case 627:8446 8447 /* Line 1806 of yacc.c */8448 #line 2405 "parser.yy"8449 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8450 8458 break; 8451 8459 … … 8460 8468 8461 8469 /* Line 1806 of yacc.c */ 8462 #line 2412 "parser.yy" 8463 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8464 break; 8465 8466 case 630: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2414 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8470 #line 2438 "parser.yy" 8471 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8471 8472 break; 8472 8473 … … 8474 8475 8475 8476 /* Line 1806 of yacc.c */ 8476 #line 24 16"parser.yy"8477 { (yyval.decl) = (yyvsp[( 2) - (3)].decl); }8477 #line 2441 "parser.yy" 8478 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8478 8479 break; 8479 8480 … … 8481 8482 8482 8483 /* Line 1806 of yacc.c */ 8483 #line 244 7"parser.yy"8484 #line 2443 "parser.yy" 8484 8485 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8485 8486 break; 8486 8487 8487 case 634: 8488 8489 /* Line 1806 of yacc.c */ 8490 #line 2450 "parser.yy" 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 break; 8493 8494 case 635: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2452 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8499 break; 8500 8501 case 636: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2457 "parser.yy" 8488 case 633: 8489 8490 /* Line 1806 of yacc.c */ 8491 #line 2448 "parser.yy" 8505 8492 { 8506 8493 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8509 8496 break; 8510 8497 8511 case 63 7:8512 8513 /* Line 1806 of yacc.c */ 8514 #line 24 62"parser.yy"8498 case 634: 8499 8500 /* Line 1806 of yacc.c */ 8501 #line 2453 "parser.yy" 8515 8502 { 8516 8503 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8519 8506 break; 8520 8507 8508 case 635: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2461 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8513 break; 8514 8515 case 636: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2463 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8520 break; 8521 8522 case 637: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2465 "parser.yy" 8526 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8527 break; 8528 8521 8529 case 638: 8522 8530 8523 8531 /* Line 1806 of yacc.c */ 8524 8532 #line 2470 "parser.yy" 8533 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8534 break; 8535 8536 case 639: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2472 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8541 break; 8542 8543 case 640: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2477 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8548 break; 8549 8550 case 641: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2479 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8555 break; 8556 8557 case 643: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2494 "parser.yy" 8561 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8562 break; 8563 8564 case 644: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2496 "parser.yy" 8568 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8569 break; 8570 8571 case 645: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2501 "parser.yy" 8575 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8576 break; 8577 8578 case 646: 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2503 "parser.yy" 8582 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8583 break; 8584 8585 case 647: 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2505 "parser.yy" 8525 8589 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8526 8590 break; 8527 8591 8528 case 6 39:8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2 472"parser.yy"8592 case 648: 8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2507 "parser.yy" 8532 8596 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8533 8597 break; 8534 8598 8535 case 64 0:8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2 474"parser.yy"8599 case 649: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2509 "parser.yy" 8539 8603 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8540 8604 break; 8541 8605 8542 case 641: 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2479 "parser.yy" 8546 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8547 break; 8548 8549 case 642: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2481 "parser.yy" 8606 case 651: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2515 "parser.yy" 8553 8610 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8554 8611 break; 8555 8612 8556 case 643: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2486 "parser.yy" 8560 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8561 break; 8562 8563 case 644: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2488 "parser.yy" 8613 case 652: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2517 "parser.yy" 8617 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8618 break; 8619 8620 case 653: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2519 "parser.yy" 8624 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8625 break; 8626 8627 case 654: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2524 "parser.yy" 8631 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8632 break; 8633 8634 case 655: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2526 "parser.yy" 8567 8638 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8568 break;8569 8570 case 646:8571 8572 /* Line 1806 of yacc.c */8573 #line 2503 "parser.yy"8574 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8575 break;8576 8577 case 647:8578 8579 /* Line 1806 of yacc.c */8580 #line 2505 "parser.yy"8581 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8582 break;8583 8584 case 648:8585 8586 /* Line 1806 of yacc.c */8587 #line 2510 "parser.yy"8588 { (yyval.decl) = DeclarationNode::newPointer( 0 ); }8589 break;8590 8591 case 649:8592 8593 /* Line 1806 of yacc.c */8594 #line 2512 "parser.yy"8595 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8596 break;8597 8598 case 650:8599 8600 /* Line 1806 of yacc.c */8601 #line 2514 "parser.yy"8602 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8603 break;8604 8605 case 651:8606 8607 /* Line 1806 of yacc.c */8608 #line 2516 "parser.yy"8609 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8610 break;8611 8612 case 652:8613 8614 /* Line 1806 of yacc.c */8615 #line 2518 "parser.yy"8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8617 break;8618 8619 case 654:8620 8621 /* Line 1806 of yacc.c */8622 #line 2524 "parser.yy"8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8624 break;8625 8626 case 655:8627 8628 /* Line 1806 of yacc.c */8629 #line 2526 "parser.yy"8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8631 8639 break; 8632 8640 … … 8641 8649 8642 8650 /* Line 1806 of yacc.c */ 8643 #line 253 3"parser.yy"8644 { (yyval.decl) = DeclarationNode::new Function( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr); }8651 #line 2534 "parser.yy" 8652 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8645 8653 break; 8646 8654 … … 8648 8656 8649 8657 /* Line 1806 of yacc.c */ 8650 #line 2535 "parser.yy" 8658 #line 2536 "parser.yy" 8659 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8660 break; 8661 8662 case 660: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2542 "parser.yy" 8666 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8667 break; 8668 8669 case 661: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2544 "parser.yy" 8673 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8674 break; 8675 8676 case 662: 8677 8678 /* Line 1806 of yacc.c */ 8679 #line 2546 "parser.yy" 8680 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8681 break; 8682 8683 case 663: 8684 8685 /* Line 1806 of yacc.c */ 8686 #line 2548 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8688 break; 8689 8690 case 665: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2563 "parser.yy" 8694 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8695 break; 8696 8697 case 666: 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2565 "parser.yy" 8701 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8702 break; 8703 8704 case 667: 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2570 "parser.yy" 8708 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8709 break; 8710 8711 case 668: 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2572 "parser.yy" 8715 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8716 break; 8717 8718 case 669: 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2574 "parser.yy" 8722 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8723 break; 8724 8725 case 670: 8726 8727 /* Line 1806 of yacc.c */ 8728 #line 2576 "parser.yy" 8729 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8730 break; 8731 8732 case 671: 8733 8734 /* Line 1806 of yacc.c */ 8735 #line 2578 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8737 break; 8738 8739 case 673: 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2584 "parser.yy" 8743 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8744 break; 8745 8746 case 674: 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2586 "parser.yy" 8750 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8751 break; 8752 8753 case 675: 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2588 "parser.yy" 8757 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8758 break; 8759 8760 case 676: 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2593 "parser.yy" 8764 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8765 break; 8766 8767 case 677: 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2595 "parser.yy" 8651 8771 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8652 break;8653 8654 case 659:8655 8656 /* Line 1806 of yacc.c */8657 #line 2537 "parser.yy"8658 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8659 break;8660 8661 case 660:8662 8663 /* Line 1806 of yacc.c */8664 #line 2543 "parser.yy"8665 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }8666 break;8667 8668 case 661:8669 8670 /* Line 1806 of yacc.c */8671 #line 2545 "parser.yy"8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }8673 break;8674 8675 case 663:8676 8677 /* Line 1806 of yacc.c */8678 #line 2551 "parser.yy"8679 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }8680 break;8681 8682 case 664:8683 8684 /* Line 1806 of yacc.c */8685 #line 2553 "parser.yy"8686 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }8687 break;8688 8689 case 665:8690 8691 /* Line 1806 of yacc.c */8692 #line 2555 "parser.yy"8693 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }8694 break;8695 8696 case 666:8697 8698 /* Line 1806 of yacc.c */8699 #line 2557 "parser.yy"8700 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }8701 break;8702 8703 case 668:8704 8705 /* Line 1806 of yacc.c */8706 #line 2572 "parser.yy"8707 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8708 break;8709 8710 case 669:8711 8712 /* Line 1806 of yacc.c */8713 #line 2574 "parser.yy"8714 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8715 break;8716 8717 case 670:8718 8719 /* Line 1806 of yacc.c */8720 #line 2579 "parser.yy"8721 { (yyval.decl) = DeclarationNode::newPointer( 0 ); }8722 break;8723 8724 case 671:8725 8726 /* Line 1806 of yacc.c */8727 #line 2581 "parser.yy"8728 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }8729 break;8730 8731 case 672:8732 8733 /* Line 1806 of yacc.c */8734 #line 2583 "parser.yy"8735 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8736 break;8737 8738 case 673:8739 8740 /* Line 1806 of yacc.c */8741 #line 2585 "parser.yy"8742 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8743 break;8744 8745 case 674:8746 8747 /* Line 1806 of yacc.c */8748 #line 2587 "parser.yy"8749 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8750 break;8751 8752 case 676:8753 8754 /* Line 1806 of yacc.c */8755 #line 2593 "parser.yy"8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8757 break;8758 8759 case 677:8760 8761 /* Line 1806 of yacc.c */8762 #line 2595 "parser.yy"8763 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8764 8772 break; 8765 8773 … … 8771 8779 break; 8772 8780 8773 case 679:8774 8775 /* Line 1806 of yacc.c */8776 #line 2602 "parser.yy"8777 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }8778 break;8779 8780 8781 case 680: 8781 8782 8782 8783 /* Line 1806 of yacc.c */ 8783 8784 #line 2604 "parser.yy" 8785 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8786 break; 8787 8788 case 682: 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2615 "parser.yy" 8792 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8793 break; 8794 8795 case 683: 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2618 "parser.yy" 8799 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8800 break; 8801 8802 case 684: 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2620 "parser.yy" 8806 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8807 break; 8808 8809 case 685: 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2623 "parser.yy" 8813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8814 break; 8815 8816 case 686: 8817 8818 /* Line 1806 of yacc.c */ 8819 #line 2625 "parser.yy" 8820 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8821 break; 8822 8823 case 687: 8824 8825 /* Line 1806 of yacc.c */ 8826 #line 2627 "parser.yy" 8827 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8828 break; 8829 8830 case 689: 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2641 "parser.yy" 8834 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8835 break; 8836 8837 case 690: 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2643 "parser.yy" 8841 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8842 break; 8843 8844 case 691: 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2648 "parser.yy" 8848 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8849 break; 8850 8851 case 692: 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2650 "parser.yy" 8855 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8856 break; 8857 8858 case 693: 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2652 "parser.yy" 8862 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8863 break; 8864 8865 case 694: 8866 8867 /* Line 1806 of yacc.c */ 8868 #line 2654 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8870 break; 8871 8872 case 695: 8873 8874 /* Line 1806 of yacc.c */ 8875 #line 2656 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8877 break; 8878 8879 case 697: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2662 "parser.yy" 8883 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8884 break; 8885 8886 case 698: 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2664 "parser.yy" 8890 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8891 break; 8892 8893 case 699: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2666 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8898 break; 8899 8900 case 700: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2671 "parser.yy" 8784 8904 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8785 8905 break; 8786 8906 8787 case 681:8788 8789 /* Line 1806 of yacc.c */ 8790 #line 26 06"parser.yy"8907 case 701: 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2673 "parser.yy" 8791 8911 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8792 8912 break; 8793 8913 8794 case 683: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2613 "parser.yy" 8798 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8799 break; 8800 8801 case 685: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2624 "parser.yy" 8805 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8806 break; 8807 8808 case 686: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2627 "parser.yy" 8914 case 704: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2683 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8919 break; 8920 8921 case 707: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2693 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8926 break; 8927 8928 case 708: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2695 "parser.yy" 8932 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8933 break; 8934 8935 case 709: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2697 "parser.yy" 8939 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8940 break; 8941 8942 case 710: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2699 "parser.yy" 8946 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8947 break; 8948 8949 case 711: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2701 "parser.yy" 8953 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8954 break; 8955 8956 case 712: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2703 "parser.yy" 8960 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8961 break; 8962 8963 case 713: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2710 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8968 break; 8969 8970 case 714: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2712 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8975 break; 8976 8977 case 715: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2714 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8982 break; 8983 8984 case 716: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2716 "parser.yy" 8988 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8989 break; 8990 8991 case 717: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2718 "parser.yy" 8995 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8996 break; 8997 8998 case 718: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2720 "parser.yy" 9002 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9003 break; 9004 9005 case 719: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2722 "parser.yy" 9009 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9010 break; 9011 9012 case 720: 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2724 "parser.yy" 9016 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9017 break; 9018 9019 case 721: 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2726 "parser.yy" 9023 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9024 break; 9025 9026 case 722: 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2728 "parser.yy" 9030 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9031 break; 9032 9033 case 723: 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2733 "parser.yy" 8812 9037 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8813 9038 break; 8814 9039 8815 case 687: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2629 "parser.yy" 8819 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8820 break; 8821 8822 case 688: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2632 "parser.yy" 9040 case 724: 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2735 "parser.yy" 8826 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8827 9045 break; 8828 9046 8829 case 689: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2634 "parser.yy" 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8834 break; 8835 8836 case 690: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2636 "parser.yy" 8840 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8841 break; 8842 8843 case 692: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2650 "parser.yy" 8847 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8848 break; 8849 8850 case 693: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2652 "parser.yy" 8854 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8855 break; 8856 8857 case 694: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2657 "parser.yy" 8861 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8862 break; 8863 8864 case 695: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2659 "parser.yy" 8868 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8869 break; 8870 8871 case 696: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2661 "parser.yy" 8875 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8876 break; 8877 8878 case 697: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2663 "parser.yy" 8882 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8883 break; 8884 8885 case 698: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2665 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8890 break; 8891 8892 case 700: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2671 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8897 break; 8898 8899 case 701: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2673 "parser.yy" 8903 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8904 break; 8905 8906 case 702: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2675 "parser.yy" 8910 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8911 break; 8912 8913 case 703: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2680 "parser.yy" 8917 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8918 break; 8919 8920 case 704: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2682 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8925 break; 8926 8927 case 707: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2692 "parser.yy" 9047 case 725: 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2740 "parser.yy" 9051 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9052 break; 9053 9054 case 726: 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2742 "parser.yy" 9058 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9059 break; 9060 9061 case 728: 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2769 "parser.yy" 8931 9065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8932 9066 break; 8933 9067 8934 case 7 10:8935 8936 /* Line 1806 of yacc.c */ 8937 #line 27 02"parser.yy"9068 case 732: 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2780 "parser.yy" 8938 9072 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8939 9073 break; 8940 9074 8941 case 7 11:8942 8943 /* Line 1806 of yacc.c */ 8944 #line 27 04"parser.yy"9075 case 733: 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2782 "parser.yy" 8945 9079 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8946 9080 break; 8947 9081 8948 case 7 12:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 27 06"parser.yy"9082 case 734: 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2784 "parser.yy" 8952 9086 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8953 9087 break; 8954 9088 8955 case 7 13:8956 8957 /* Line 1806 of yacc.c */ 8958 #line 27 08"parser.yy"9089 case 735: 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2786 "parser.yy" 8959 9093 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8960 9094 break; 8961 9095 8962 case 7 14:8963 8964 /* Line 1806 of yacc.c */ 8965 #line 27 10"parser.yy"9096 case 736: 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2788 "parser.yy" 8966 9100 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8967 9101 break; 8968 9102 8969 case 7 15:8970 8971 /* Line 1806 of yacc.c */ 8972 #line 27 12"parser.yy"9103 case 737: 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2790 "parser.yy" 8973 9107 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8974 9108 break; 8975 9109 8976 case 7 16:8977 8978 /* Line 1806 of yacc.c */ 8979 #line 27 19"parser.yy"9110 case 738: 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2797 "parser.yy" 8980 9114 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8981 9115 break; 8982 9116 8983 case 717: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2721 "parser.yy" 9117 case 739: 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2799 "parser.yy" 9121 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9122 break; 9123 9124 case 740: 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2801 "parser.yy" 8987 9128 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8988 9129 break; 8989 9130 8990 case 718: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2723 "parser.yy" 9131 case 741: 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2803 "parser.yy" 9135 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9136 break; 9137 9138 case 742: 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2805 "parser.yy" 8994 9142 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8995 9143 break; 8996 9144 8997 case 719: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2725 "parser.yy" 9001 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9002 break; 9003 9004 case 720: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2727 "parser.yy" 9145 case 743: 9146 9147 /* Line 1806 of yacc.c */ 9148 #line 2807 "parser.yy" 9008 9149 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9009 9150 break; 9010 9151 9011 case 721:9012 9013 /* Line 1806 of yacc.c */9014 #line 2729 "parser.yy"9015 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9016 break;9017 9018 case 722:9019 9020 /* Line 1806 of yacc.c */9021 #line 2731 "parser.yy"9022 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9023 break;9024 9025 case 723:9026 9027 /* Line 1806 of yacc.c */9028 #line 2733 "parser.yy"9029 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9030 break;9031 9032 case 724:9033 9034 /* Line 1806 of yacc.c */9035 #line 2735 "parser.yy"9036 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9037 break;9038 9039 case 725:9040 9041 /* Line 1806 of yacc.c */9042 #line 2737 "parser.yy"9043 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9044 break;9045 9046 case 726:9047 9048 /* Line 1806 of yacc.c */9049 #line 2742 "parser.yy"9050 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }9051 break;9052 9053 case 727:9054 9055 /* Line 1806 of yacc.c */9056 #line 2744 "parser.yy"9057 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }9058 break;9059 9060 case 728:9061 9062 /* Line 1806 of yacc.c */9063 #line 2749 "parser.yy"9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }9065 break;9066 9067 case 729:9068 9069 /* Line 1806 of yacc.c */9070 #line 2751 "parser.yy"9071 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }9072 break;9073 9074 case 731:9075 9076 /* Line 1806 of yacc.c */9077 #line 2778 "parser.yy"9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }9079 break;9080 9081 case 735:9082 9083 /* Line 1806 of yacc.c */9084 #line 2789 "parser.yy"9085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9086 break;9087 9088 case 736:9089 9090 /* Line 1806 of yacc.c */9091 #line 2791 "parser.yy"9092 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9093 break;9094 9095 case 737:9096 9097 /* Line 1806 of yacc.c */9098 #line 2793 "parser.yy"9099 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9100 break;9101 9102 case 738:9103 9104 /* Line 1806 of yacc.c */9105 #line 2795 "parser.yy"9106 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9107 break;9108 9109 case 739:9110 9111 /* Line 1806 of yacc.c */9112 #line 2797 "parser.yy"9113 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9114 break;9115 9116 case 740:9117 9118 /* Line 1806 of yacc.c */9119 #line 2799 "parser.yy"9120 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9121 break;9122 9123 case 741:9124 9125 /* Line 1806 of yacc.c */9126 #line 2806 "parser.yy"9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9128 break;9129 9130 case 742:9131 9132 /* Line 1806 of yacc.c */9133 #line 2808 "parser.yy"9134 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9135 break;9136 9137 case 743:9138 9139 /* Line 1806 of yacc.c */9140 #line 2810 "parser.yy"9141 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9142 break;9143 9144 9152 case 744: 9145 9153 9146 9154 /* Line 1806 of yacc.c */ 9147 9155 #line 2812 "parser.yy" 9148 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false) ); }9156 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9149 9157 break; 9150 9158 … … 9152 9160 9153 9161 /* Line 1806 of yacc.c */ 9154 #line 281 4"parser.yy"9155 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false )); }9162 #line 2817 "parser.yy" 9163 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9156 9164 break; 9157 9165 … … 9159 9167 9160 9168 /* Line 1806 of yacc.c */ 9161 #line 281 6"parser.yy"9162 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl)); }9169 #line 2819 "parser.yy" 9170 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9163 9171 break; 9164 9172 … … 9167 9175 /* Line 1806 of yacc.c */ 9168 9176 #line 2821 "parser.yy" 9169 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9170 break; 9171 9172 case 748: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2826 "parser.yy" 9176 { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); } 9177 break; 9178 9179 case 749: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2828 "parser.yy" 9183 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9177 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9184 9178 break; 9185 9179 … … 9187 9181 9188 9182 /* Line 1806 of yacc.c */ 9189 #line 2830 "parser.yy" 9190 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9191 break; 9192 9193 case 753: 9194 9195 /* Line 1806 of yacc.c */ 9196 #line 2854 "parser.yy" 9183 #line 2845 "parser.yy" 9197 9184 { (yyval.en) = 0; } 9198 9185 break; 9199 9186 9200 case 75 4:9201 9202 /* Line 1806 of yacc.c */ 9203 #line 28 56"parser.yy"9187 case 751: 9188 9189 /* Line 1806 of yacc.c */ 9190 #line 2847 "parser.yy" 9204 9191 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9205 9192 break; … … 9208 9195 9209 9196 /* Line 1806 of yacc.c */ 9210 #line 9 211"Parser/parser.cc"9197 #line 9198 "Parser/parser.cc" 9211 9198 default: break; 9212 9199 } … … 9439 9426 9440 9427 /* Line 2067 of yacc.c */ 9441 #line 285 9"parser.yy"9428 #line 2850 "parser.yy" 9442 9429 9443 9430 // ----end of grammar---- … … 9446 9433 9447 9434 void yyerror( const char * ) { 9448 cout << "Error ";9435 std::cout << "Error "; 9449 9436 if ( yyfilename ) { 9450 cout << "in file " << yyfilename << " ";9437 std::cout << "in file " << yyfilename << " "; 9451 9438 } // if 9452 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" <<endl;9439 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl; 9453 9440 } 9454 9441 -
src/Parser/parser.h
r7756647 rac9ca967 262 262 263 263 /* Line 2068 of yacc.c */ 264 #line 11 6"parser.yy"264 #line 115 "parser.yy" 265 265 266 266 Token tok; -
src/Parser/parser.yy
r7756647 rac9ca967 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Oct 5 14:10:46201613 // Update Count : 200212 // Last Modified On : Mon Sep 12 17:29:45 2016 13 // Update Count : 1969 14 14 // 15 15 … … 54 54 #include "TypeData.h" 55 55 #include "LinkageSpec.h" 56 using namespace std;57 56 58 57 extern DeclarationNode * parseTree; … … 60 59 extern TypedefTable typedefTable; 61 60 62 st ack< LinkageSpec::Spec > linkageStack;63 64 void appendStr( st ring *to,string *from ) {61 std::stack< LinkageSpec::Spec > linkageStack; 62 63 void appendStr( std::string *to, std::string *from ) { 65 64 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 66 65 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); … … 196 195 %type<decl> field_declaration field_declaration_list field_declarator field_declaring_list 197 196 %type<en> field field_list 198 %type<tok> field_name199 197 200 198 %type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr … … 361 359 { $$ = $2; } 362 360 | '(' compound_statement ')' // GCC, lambda expression 363 { $$ = new ExpressionNode( build_valexpr( $2 ) ); }361 { $$ = new ExpressionNode( build_valexpr( $2 ) ); } 364 362 ; 365 363 … … 380 378 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 381 379 { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $5 ) ) ); } 382 | postfix_expression '.' INTEGERconstant383 { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$3 ) ) ); }384 380 | postfix_expression ARROW no_attr_identifier 385 381 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } … … 395 391 { 396 392 Token fn; 397 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'?393 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 398 394 $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) ); 399 395 } … … 418 414 419 415 field: // CFA, tuple field selector 420 field_name 416 no_attr_identifier 417 { $$ = new ExpressionNode( build_varref( $1 ) ); } 421 418 // ambiguity with .0 so space required after field-selection, e.g. 422 419 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 423 { $$ = new ExpressionNode( build_varref( $1 ) ); } 424 | field_name '.' field 420 | no_attr_identifier '.' field 425 421 { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); } 426 | field_name'.' '[' push field_list pop ']'422 | no_attr_identifier '.' '[' push field_list pop ']' 427 423 { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); } 428 | field_nameARROW field424 | no_attr_identifier ARROW field 429 425 { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); } 430 | field_nameARROW '[' push field_list pop ']'426 | no_attr_identifier ARROW '[' push field_list pop ']' 431 427 { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); } 432 ;433 434 field_name:435 no_attr_identifier436 | INTEGERconstant437 428 ; 438 429 … … 677 668 { 678 669 Token fn; 679 fn.str = new st ring( "^?{}" );// location undefined670 fn.str = new std::string( "^?{}" ); // location undefined 680 671 $$ = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_last( $4 ) ) ) ) ); 681 672 } … … 907 898 { $$ = new StatementNode( build_catch( $5, $8 ) ); } 908 899 | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop 909 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); }900 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); } 910 901 | CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop 911 902 { $$ = new StatementNode( build_catch( $5, $8 ) ); } … … 979 970 { $$ = new ExpressionNode( build_asmexpr( 0, $1, $3 ) ); } 980 971 | '[' constant_expression ']' string_literal '(' constant_expression ')' 981 { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); }972 { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); } 982 973 ; 983 974 … … 1478 1469 aggregate_name: 1479 1470 aggregate_key '{' field_declaration_list '}' 1480 { $$ = DeclarationNode::newAggregate( $1, nullptr, nullptr, $3, true ); }1471 { $$ = DeclarationNode::newAggregate( $1, 0, 0, $3, true ); } 1481 1472 | aggregate_key no_attr_identifier_or_type_name 1482 1473 { 1483 1474 typedefTable.makeTypedef( *$2 ); 1484 $$ = DeclarationNode::newAggregate( $1, $2, nullptr, nullptr, false );1475 $$ = DeclarationNode::newAggregate( $1, $2, 0, 0, false ); 1485 1476 } 1486 1477 | aggregate_key no_attr_identifier_or_type_name 1487 1478 { typedefTable.makeTypedef( *$2 ); } 1488 1479 '{' field_declaration_list '}' 1489 { $$ = DeclarationNode::newAggregate( $1, $2, nullptr, $5, true ); }1480 { $$ = DeclarationNode::newAggregate( $1, $2, 0, $5, true ); } 1490 1481 | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1491 { $$ = DeclarationNode::newAggregate( $1, nullptr, $3, $6, false ); }1482 { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6, false ); } 1492 1483 | aggregate_key typegen_name // CFA, S/R conflict 1493 1484 { $$ = $2; } … … 1570 1561 enum_name: 1571 1562 enum_key '{' enumerator_list comma_opt '}' 1572 { $$ = DeclarationNode::newEnum( nullptr, $3 ); }1563 { $$ = DeclarationNode::newEnum( 0, $3 ); } 1573 1564 | enum_key no_attr_identifier_or_type_name 1574 1565 { … … 2015 2006 { 2016 2007 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 2017 linkage = LinkageSpec:: linkageCheck($2 );2008 linkage = LinkageSpec::fromString( *$2 ); 2018 2009 } 2019 2010 '{' external_definition_list_opt '}' // C++-style linkage specifier … … 2531 2522 abstract_function: 2532 2523 '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2533 { $$ = DeclarationNode::newFunction( nullptr, nullptr, $3, nullptr); }2524 { $$ = DeclarationNode::newFunction( 0, 0, $3, 0 ); } 2534 2525 | '(' abstract_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2535 2526 { $$ = $2->addParamList( $6 ); } … … 2600 2591 abstract_parameter_function: 2601 2592 '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2602 { $$ = DeclarationNode::newFunction( nullptr, nullptr, $3, nullptr); }2593 { $$ = DeclarationNode::newFunction( 0, 0, $3, 0 ); } 2603 2594 | '(' abstract_parameter_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2604 2595 { $$ = $2->addParamList( $6 ); } … … 2804 2795 // empty (void) function return type. 2805 2796 '[' ']' type_specifier 2806 { $$ = $3->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }2797 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2807 2798 | '[' ']' multi_array_dimension type_specifier 2808 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }2799 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2809 2800 | multi_array_dimension type_specifier 2810 2801 { $$ = $2->addNewArray( $1 ); } 2811 2802 | '[' ']' new_abstract_ptr 2812 { $$ = $3->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }2803 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2813 2804 | '[' ']' multi_array_dimension new_abstract_ptr 2814 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }2805 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2815 2806 | multi_array_dimension new_abstract_ptr 2816 2807 { $$ = $2->addNewArray( $1 ); } … … 2824 2815 new_abstract_function: // CFA 2825 2816 '[' ']' '(' new_parameter_type_list_opt ')' 2826 { $$ = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), $4, nullptr); }2817 { $$ = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), $4, 0 ); } 2827 2818 | new_abstract_tuple '(' push new_parameter_type_list_opt pop ')' 2828 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr); }2819 { $$ = DeclarationNode::newFunction( 0, $1, $4, 0 ); } 2829 2820 | new_function_return '(' push new_parameter_type_list_opt pop ')' 2830 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr); }2821 { $$ = DeclarationNode::newFunction( 0, $1, $4, 0 ); } 2831 2822 ; 2832 2823 … … 2863 2854 2864 2855 void yyerror( const char * ) { 2865 cout << "Error ";2856 std::cout << "Error "; 2866 2857 if ( yyfilename ) { 2867 cout << "in file " << yyfilename << " ";2858 std::cout << "in file " << yyfilename << " "; 2868 2859 } // if 2869 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" <<endl;2860 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl; 2870 2861 } 2871 2862 -
src/SynTree/FunctionDecl.cc
r7756647 rac9ca967 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:06:32201613 // Update Count : 2 112 // Last Modified On : Thu Aug 18 23:50:14 2016 13 // Update Count : 20 14 14 // 15 15 … … 60 60 } // if 61 61 if ( get_linkage() != LinkageSpec::Cforall ) { 62 os << LinkageSpec:: linkageName( get_linkage() ) << " ";62 os << LinkageSpec::toString( get_linkage() ) << " "; 63 63 } // if 64 64 if ( get_isInline() ) { -
src/SynTree/ObjectDecl.cc
r7756647 rac9ca967 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Oct 1 23:05:56201613 // Update Count : 3 212 // Last Modified On : Thu Aug 18 23:50:33 2016 13 // Update Count : 31 14 14 // 15 15 … … 44 44 45 45 if ( get_linkage() != LinkageSpec::Cforall ) { 46 os << LinkageSpec:: linkageName( get_linkage() ) << " ";46 os << LinkageSpec::toString( get_linkage() ) << " "; 47 47 } // if 48 48
Note:
See TracChangeset
for help on using the changeset viewer.