- Timestamp:
- Aug 10, 2016, 2:29:44 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- be0a9d8, ef42e764
- Parents:
- f18a711 (diff), a563f01 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
rf18a711 r3078643 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 20:49:31201613 // Update Count : 16 412 // Last Modified On : Tue Aug 9 08:39:20 2016 13 // Update Count : 169 14 14 // 15 15 … … 49 49 newnode->name = name; 50 50 newnode->storageClasses = storageClasses; 51 newnode->bitfieldWidth = maybeClone( bitfieldWidth ); 51 //PAB newnode->bitfieldWidth = maybeClone( bitfieldWidth ); 52 newnode->bitfieldWidth = bitfieldWidth; 52 53 newnode->hasEllipsis = hasEllipsis; 53 54 newnode->initializer = initializer; … … 283 284 newnode->type->array->dimension = size; 284 285 newnode->type->array->isStatic = isStatic; 285 if ( newnode->type->array->dimension == 0 || dynamic_cast<Constant Node *>( newnode->type->array->dimension) ) {286 if ( newnode->type->array->dimension == 0 || dynamic_cast<ConstantExpr *>( newnode->type->array->dimension->build() ) ) { 286 287 newnode->type->array->isVarLen = false; 287 288 } else { -
src/Parser/ExpressionNode.cc
rf18a711 r3078643 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Aug 5 07:56:23201613 // Update Count : 37512 // Last Modified On : Wed Aug 10 11:07:38 2016 13 // Update Count : 486 14 14 // 15 15 16 16 #include <cassert> 17 17 #include <cctype> 18 #include <climits> 19 #include <cstdio> 18 20 #include <algorithm> 19 21 #include <sstream> 20 #include <cstdio>21 22 22 23 #include "ParseNode.h" … … 31 32 using namespace std; 32 33 33 ExpressionNode::ExpressionNode() : ParseNode() {} 34 35 ExpressionNode::ExpressionNode( const string *name ) : ParseNode( name ) {} 36 37 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) { 38 if ( other.argName ) { 39 argName = other.argName->clone(); 40 } else { 41 argName = 0; 42 } // if 43 } 44 45 ExpressionNode * ExpressionNode::set_argName( const std::string *aName ) { 46 argName = new VarRefNode( aName ); 47 return this; 48 } 49 50 ExpressionNode * ExpressionNode::set_argName( ExpressionNode *aDesignator ) { 51 argName = aDesignator; 52 return this; 53 } 54 55 void ExpressionNode::printDesignation( std::ostream &os, int indent ) const { 56 if ( argName ) { 57 os << string( indent, ' ' ) << "(designated by: "; 58 argName->printOneLine( os, indent ); 59 os << ")" << std::endl; 60 } // if 61 } 62 63 //############################################################################## 64 65 NullExprNode::NullExprNode() {} 66 67 NullExprNode *NullExprNode::clone() const { 68 return new NullExprNode(); 69 } 70 71 void NullExprNode::print( std::ostream & os, int indent ) const { 72 printDesignation( os ); 73 os << "null expression"; 74 } 75 76 void NullExprNode::printOneLine( std::ostream & os, int indent ) const { 77 printDesignation( os ); 78 os << "null"; 79 } 80 81 Expression *NullExprNode::build() const { 82 return 0; 83 } 84 85 // CommaExprNode *ExpressionNode::add_to_list( ExpressionNode *exp ) { 86 // return new CommaExprNode( this, exp ); 87 // } 88 89 //############################################################################## 90 91 ConstantNode::ConstantNode( ConstantExpr *expr ) : expr( expr ) { 92 } // ConstantNode::ConstantNode 93 94 ConstantNode *ConstantNode::appendstr( const std::string *newValue ) { 95 assert( newValue != 0 ); 96 97 string value = expr->get_constant()->get_value(); 98 99 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 100 value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) ); 101 expr->get_constant()->set_value( value ); 102 103 delete newValue; // allocated by lexer 104 return this; 105 } 106 107 void ConstantNode::printOneLine( std::ostream &os, int indent ) const { 108 // os << string( indent, ' ' ); 109 // printDesignation( os ); 110 111 // switch ( type ) { 112 // case Integer: 113 // case Float: 114 // os << value ; 115 // break; 116 // case Character: 117 // os << "'" << value << "'"; 118 // break; 119 // case String: 120 // os << '"' << value << '"'; 121 // break; 122 // } // switch 123 124 // os << ' '; 125 } 126 127 void ConstantNode::print( std::ostream &os, int indent ) const { 128 printOneLine( os, indent ); 129 os << endl; 130 } 131 132 Expression *ConstantNode::build() const { 133 return expr->clone(); 134 } 135 136 //############################################################################## 137 138 VarRefNode::VarRefNode() : isLabel( false ) {} 139 140 VarRefNode::VarRefNode( const string *name_, bool labelp ) : ExpressionNode( name_ ), isLabel( labelp ) {} 141 142 VarRefNode::VarRefNode( const VarRefNode &other ) : ExpressionNode( other ), isLabel( other.isLabel ) { 143 } 144 145 Expression *VarRefNode::build() const { 146 return new NameExpr( get_name(), maybeBuild< Expression >( get_argName() ) ); 147 } 148 149 void VarRefNode::printOneLine( std::ostream &os, int indent ) const { 150 printDesignation( os ); 151 os << get_name() << ' '; 152 } 153 154 void VarRefNode::print( std::ostream &os, int indent ) const { 155 printDesignation( os ); 156 os << string( indent, ' ' ) << "Referencing: "; 157 os << "Variable: " << get_name(); 158 os << endl; 159 } 160 161 //############################################################################## 162 163 DesignatorNode::DesignatorNode( ExpressionNode *expr, bool isArrayIndex ) : isArrayIndex( isArrayIndex ) { 164 set_argName( expr ); 165 assert( get_argName() ); 166 167 if ( ! isArrayIndex ) { 168 if ( VarRefNode * var = dynamic_cast< VarRefNode * >( expr ) ) { 169 170 stringstream ss( var->get_name() ); 171 double value; 172 if ( ss >> value ) { 173 // this is a floating point constant. It MUST be 174 // ".0" or ".1", otherwise the program is invalid 175 if ( ! (var->get_name() == ".0" || var->get_name() == ".1") ) { 176 throw SemanticError( "invalid designator name: " + var->get_name() ); 177 } // if 178 var->set_name( var->get_name().substr(1) ); 34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ), extension( other.extension ) {} 35 36 //############################################################################## 37 38 // Difficult to separate extra parts of constants during lexing because actions are not allow in the middle of patterns: 39 // 40 // prefix action constant action suffix 41 // 42 // Alternatively, breaking a pattern using BEGIN does not work if the following pattern can be empty: 43 // 44 // constant BEGIN CONT ... 45 // <CONT>(...)? BEGIN 0 ... // possible empty suffix 46 // 47 // because the CONT rule is NOT triggered if the pattern is empty. Hence, constants are reparsed here to determine their 48 // type. 49 50 static Type::Qualifiers emptyQualifiers; // no qualifiers on constants 51 52 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; } 53 static inline bool checkL( char c ) { return c == 'l' || c == 'L'; } 54 static inline bool checkF( char c ) { return c == 'f' || c == 'F'; } 55 static inline bool checkD( char c ) { return c == 'd' || c == 'D'; } 56 static inline bool checkI( char c ) { return c == 'i' || c == 'I'; } 57 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; } 58 59 Expression *build_constantInteger( std::string & str ) { 60 static const BasicType::Kind kind[2][3] = { 61 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, 62 { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt }, 63 }; 64 bool dec = true, Unsigned = false; // decimal, unsigned constant 65 int size; // 0 => int, 1 => long, 2 => long long 66 unsigned long long v; // converted integral value 67 size_t last = str.length() - 1; // last character of constant 68 69 if ( str[0] == '0' ) { // octal/hex constant ? 70 dec = false; 71 if ( last != 0 && checkX( str[1] ) ) { // hex constant ? 72 sscanf( (char *)str.c_str(), "%llx", &v ); 73 //printf( "%llx %llu\n", v, v ); 74 } else { // octal constant 75 sscanf( (char *)str.c_str(), "%llo", &v ); 76 //printf( "%llo %llu\n", v, v ); 77 } // if 78 } else { // decimal constant ? 79 sscanf( (char *)str.c_str(), "%llu", &v ); 80 //printf( "%llu %llu\n", v, v ); 81 } // if 82 83 if ( v <= INT_MAX ) { // signed int 84 size = 0; 85 } else if ( v <= UINT_MAX && ! dec ) { // unsigned int 86 size = 0; 87 Unsigned = true; // unsigned 88 } else if ( v <= LONG_MAX ) { // signed long int 89 size = 1; 90 } else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int 91 size = 1; 92 Unsigned = true; // unsigned long int 93 } else if ( v <= LLONG_MAX ) { // signed long long int 94 size = 2; 95 } else { // unsigned long long int 96 size = 2; 97 Unsigned = true; // unsigned long long int 98 } // if 99 100 if ( checkU( str[last] ) ) { // suffix 'u' ? 101 Unsigned = true; 102 if ( last > 0 && checkL( str[last - 1] ) ) { // suffix 'l' ? 103 size = 1; 104 if ( last > 1 && checkL( str[last - 2] ) ) { // suffix 'll' ? 105 size = 2; 179 106 } // if 180 107 } // if 181 } // if 182 } 183 184 DesignatorNode::DesignatorNode( const DesignatorNode &other ) : ExpressionNode( other ), isArrayIndex( other.isArrayIndex ) { 185 } 186 187 class DesignatorFixer : public Mutator { 188 public: 189 virtual Expression* mutate( NameExpr *nameExpr ) { 190 if ( nameExpr->get_name() == "0" || nameExpr->get_name() == "1" ) { 191 Constant val( new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nameExpr->get_name() ); 192 delete nameExpr; 193 return new ConstantExpr( val ); 194 } 195 return nameExpr; 196 } 197 }; 198 199 Expression *DesignatorNode::build() const { 200 Expression * ret = maybeBuild<Expression>(get_argName()); 201 202 if ( isArrayIndex ) { 203 // need to traverse entire structure and change any instances of 0 or 1 to 204 // ConstantExpr 205 DesignatorFixer fixer; 206 ret = ret->acceptMutator( fixer ); 207 } // if 208 209 return ret; 210 } 211 212 void DesignatorNode::printOneLine( std::ostream &os, int indent ) const { 213 if ( get_argName() ) { 214 if ( isArrayIndex ) { 215 os << "["; 216 get_argName()->printOneLine( os, indent ); 217 os << "]"; 108 } else if ( checkL( str[ last ] ) ) { // suffix 'l' ? 109 size = 1; 110 if ( last > 0 && checkL( str[last - 1] ) ) { // suffix 'll' ? 111 size = 2; 112 if ( last > 1 && checkU( str[last - 2] ) ) { // suffix 'u' ? 113 Unsigned = true; 114 } // if 218 115 } else { 219 os << "."; 220 get_argName()->printOneLine( os, indent ); 221 } 222 } // if 223 } 224 225 void DesignatorNode::print( std::ostream &os, int indent ) const { 226 if ( get_argName() ) { 227 if ( isArrayIndex ) { 228 os << "["; 229 get_argName()->print( os, indent ); 230 os << "]"; 231 } else { 232 os << "."; 233 get_argName()->print( os, indent ); 234 } 235 } // if 236 } 237 238 //############################################################################## 239 240 static const char *opName[] = { 241 "TupleC", "Comma", "TupleFieldSel", // "TuplePFieldSel", // n-adic 242 // triadic 243 "Cond", "NCond", 116 if ( last > 0 && checkU( str[last - 1] ) ) { // suffix 'u' ? 117 Unsigned = true; 118 } // if 119 } // if 120 } // if 121 122 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) ); 123 } // build_constantInteger 124 125 Expression *build_constantFloat( std::string & str ) { 126 static const BasicType::Kind kind[2][3] = { 127 { BasicType::Float, BasicType::Double, BasicType::LongDouble }, 128 { BasicType::FloatComplex, BasicType::DoubleComplex, BasicType::LongDoubleComplex }, 129 }; 130 131 bool complx = false; // real, complex 132 int size = 1; // 0 => float, 1 => double (default), 2 => long double 133 // floating-point constant has minimum of 2 characters: 1. or .1 134 size_t last = str.length() - 1; 135 136 if ( checkI( str[last] ) ) { // imaginary ? 137 complx = true; 138 last -= 1; // backup one character 139 } // if 140 141 if ( checkF( str[last] ) ) { // float ? 142 size = 0; 143 } else if ( checkD( str[last] ) ) { // double ? 144 size = 1; 145 } else if ( checkL( str[last] ) ) { // long double ? 146 size = 2; 147 } // if 148 if ( ! complx && checkI( str[last - 1] ) ) { // imaginary ? 149 complx = true; 150 } // if 151 152 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) ); 153 } // build_constantFloat 154 155 Expression *build_constantChar( std::string & str ) { 156 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 157 } // build_constantChar 158 159 ConstantExpr *build_constantStr( std::string & str ) { 160 // string should probably be a primitive type 161 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ), 162 new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::UnsignedInt ), 163 toString( str.size()+1-2 ) ) ), // +1 for '\0' and -2 for '"' 164 false, false ); 165 return new ConstantExpr( Constant( at, str ) ); 166 } // build_constantStr 167 168 //############################################################################## 169 170 NameExpr * build_varref( const string *name, bool labelp ) { 171 return new NameExpr( *name, nullptr ); 172 } 173 174 //############################################################################## 175 176 static const char *OperName[] = { 244 177 // diadic 245 "SizeOf", "AlignOf", "OffsetOf", " Attr", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",178 "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&", 246 179 "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?", 247 180 "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", 248 "?[?]", " FieldSel", "PFieldSel", "...",181 "?[?]", "...", 249 182 // monadic 250 183 "+?", "-?", "AddressOf", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "&&" 251 184 }; 252 185 253 OperatorNode::OperatorNode( Type t ) : type( t ) {} 254 255 OperatorNode::OperatorNode( const OperatorNode &other ) : ExpressionNode( other ), type( other.type ) { 256 } 257 258 OperatorNode::~OperatorNode() {} 259 260 OperatorNode::Type OperatorNode::get_type( void ) const { 261 return type; 262 } 263 264 void OperatorNode::printOneLine( std::ostream &os, int indent ) const { 265 printDesignation( os ); 266 os << opName[ type ] << ' '; 267 } 268 269 void OperatorNode::print( std::ostream &os, int indent ) const{ 270 printDesignation( os ); 271 os << string( indent, ' ' ) << "Operator: " << opName[type] << endl; 272 return; 273 } 274 275 const char *OperatorNode::get_typename( void ) const{ 276 return opName[ type ]; 277 } 278 279 //############################################################################## 280 281 CompositeExprNode::CompositeExprNode() : ExpressionNode(), function( 0 ), arguments( 0 ) { 282 } 283 284 CompositeExprNode::CompositeExprNode( const string *name_ ) : ExpressionNode( name_ ), function( 0 ), arguments( 0 ) { 285 } 286 287 CompositeExprNode::CompositeExprNode( ExpressionNode *f, ExpressionNode *args ): 288 function( f ), arguments( args ) { 289 } 290 291 CompositeExprNode::CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2): 292 function( f ), arguments( arg1 ) { 293 arguments->set_link( arg2 ); 294 } 295 296 CompositeExprNode::CompositeExprNode( const CompositeExprNode &other ) : ExpressionNode( other ), function( maybeClone( other.function ) ), arguments( 0 ) { 297 ParseNode *cur = other.arguments; 298 while ( cur ) { 299 if ( arguments ) { 300 arguments->set_link( cur->clone() ); 301 } else { 302 arguments = ( ExpressionNode*)cur->clone(); 303 } // if 304 cur = cur->get_link(); 305 } 306 } 307 308 CompositeExprNode::~CompositeExprNode() { 309 delete function; 310 delete arguments; 311 } 312 313 314 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node ) { 315 DeclarationNode *decl_node = arg->get_decl(); 316 186 //############################################################################## 187 188 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) { 317 189 Type *targetType = decl_node->buildType(); 318 if ( dynamic_cast< VoidType * >( targetType ) ) {190 if ( dynamic_cast< VoidType * >( targetType ) ) { 319 191 delete targetType; 320 192 return new CastExpr( maybeBuild<Expression>(expr_node) ); … … 324 196 } 325 197 326 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 327 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 328 assert( memberExpr ); 329 UntypedMemberExpr *ret = new UntypedMemberExpr( memberExpr->get_name(), maybeBuild<Expression>(expr_node) ); 198 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ) { 199 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybeBuild<Expression>(expr_node) ); 330 200 delete member; 331 201 return ret; 332 202 } 333 203 334 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 335 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 336 assert( memberExpr ); 204 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ) { 337 205 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 338 206 deref->get_args().push_back( maybeBuild<Expression>(expr_node) ); 339 UntypedMemberExpr *ret = new UntypedMemberExpr( member Expr->get_name(), deref );207 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref ); 340 208 delete member; 341 209 return ret; … … 345 213 return new AddressExpr( maybeBuild<Expression>(expr_node) ); 346 214 } 347 Expression *build_sizeOf( ExpressionNode *expr_node ) { 348 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 349 return new SizeofExpr( arg->get_decl()->buildType() ); 350 } else { 351 return new SizeofExpr( maybeBuild<Expression>(expr_node) ); 352 } // if 353 } 354 Expression *build_alignOf( ExpressionNode *expr_node ) { 355 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 356 return new AlignofExpr( arg->get_decl()->buildType() ); 357 } else { 358 return new AlignofExpr( maybeBuild<Expression>(expr_node) ); 359 } // if 360 } 361 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ) { 362 NameExpr *memberExpr = dynamic_cast<NameExpr *>( maybeBuild<Expression>( member ) ); 363 assert( memberExpr ); 364 return new UntypedOffsetofExpr( arg->get_decl()->buildType(), memberExpr->get_name() ); 215 Expression *build_sizeOfexpr( ExpressionNode *expr_node ) { 216 return new SizeofExpr( maybeBuild<Expression>(expr_node) ); 217 } 218 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 219 return new SizeofExpr( decl_node->buildType() ); 220 } 221 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { 222 return new AlignofExpr( maybeBuild<Expression>(expr_node) ); 223 } 224 Expression *build_alignOftype( DeclarationNode *decl_node ) { 225 return new AlignofExpr( decl_node->buildType() ); 226 } 227 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 228 return new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 365 229 } 366 230 … … 369 233 } 370 234 371 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ) { 235 Expression *build_unary_val( OperKinds op, ExpressionNode *expr_node ) { 236 std::list<Expression *> args; 237 args.push_back( maybeBuild<Expression>(expr_node) ); 238 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 239 } 240 Expression *build_unary_ptr( OperKinds op, ExpressionNode *expr_node ) { 372 241 std::list<Expression *> args; 373 242 args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node) ) ); 374 return new UntypedExpr( new NameExpr( opName[op ] ), args );375 } 376 Expression *build_ opr2( OperatorNode::Typeop, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) {243 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 244 } 245 Expression *build_binary_val( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 377 246 std::list<Expression *> args; 378 247 args.push_back( maybeBuild<Expression>(expr_node1) ); 379 248 args.push_back( maybeBuild<Expression>(expr_node2) ); 380 return new UntypedExpr( new NameExpr( opName[ op ] ), args ); 249 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 250 } 251 Expression *build_binary_ptr( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 252 std::list<Expression *> args; 253 args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node1) ) ); 254 args.push_back( maybeBuild<Expression>(expr_node2) ); 255 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 381 256 } 382 257 … … 389 264 } 390 265 391 CompositeExprNode2::CompositeExprNode2( Expression *expr ) : expr( expr ) {} 392 CompositeExprNode2::CompositeExprNode2( const CompositeExprNode2 &other ) : expr( other.expr->clone() ) {} 393 CompositeExprNode2::~CompositeExprNode2() { delete expr; } 394 void CompositeExprNode2::print( std::ostream &, int indent ) const { assert( false ); } 395 void CompositeExprNode2::printOneLine( std::ostream &, int indent ) const { assert( false ); } 396 397 398 Expression *CompositeExprNode::build() const { 399 OperatorNode *op; 400 std::list<Expression *> args; 401 402 buildList( get_args(), args ); 403 404 if ( ! ( op = dynamic_cast<OperatorNode *>( function ) ) ) { // function as opposed to operator 405 return new UntypedExpr( maybeBuild<Expression>(function), args, maybeBuild< Expression >( get_argName() )); 406 } // if 407 408 switch ( op->get_type() ) { 409 case OperatorNode::Assign: 410 case OperatorNode::MulAssn: 411 case OperatorNode::DivAssn: 412 case OperatorNode::ModAssn: 413 case OperatorNode::PlusAssn: 414 case OperatorNode::MinusAssn: 415 case OperatorNode::LSAssn: 416 case OperatorNode::RSAssn: 417 case OperatorNode::AndAssn: 418 case OperatorNode::ERAssn: 419 case OperatorNode::OrAssn: 420 assert( ! args.empty() ); 421 args.front() = new AddressExpr( args.front() ); 422 case OperatorNode::UnPlus: 423 case OperatorNode::UnMinus: 424 case OperatorNode::PointTo: 425 case OperatorNode::Neg: 426 case OperatorNode::BitNeg: 427 case OperatorNode::LabelAddress: 428 return new UntypedExpr( new NameExpr( opName[ op->get_type() ] ), args ); 429 430 case OperatorNode::Attr: 431 { 432 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() ); 433 assert( var ); 434 if ( ! get_args()->get_link() ) { 435 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0); 436 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) { 437 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() ); 438 } else { 439 return new AttrExpr( maybeBuild<Expression>(var), args.back() ); 440 } // if 441 } 442 case OperatorNode::Cond: 443 { 444 assert( args.size() == 3); 445 std::list< Expression * >::const_iterator i = args.begin(); 446 Expression *arg1 = notZeroExpr( *i++ ); 447 Expression *arg2 = *i++; 448 Expression *arg3 = *i++; 449 return new ConditionalExpr( arg1, arg2, arg3 ); 450 } 451 case OperatorNode::NCond: 452 throw UnimplementedError( "GNU 2-argument conditional expression" ); 453 // Tuples 454 case OperatorNode::TupleC: 455 { 456 TupleExpr *ret = new TupleExpr(); 457 std::copy( args.begin(), args.end(), back_inserter( ret->get_exprs() ) ); 458 return ret; 459 } 460 default: 461 assert( ((void)"CompositeExprNode::build", false) ); 462 return 0; 463 } // switch 464 } 465 466 void CompositeExprNode::printOneLine( std::ostream &os, int indent ) const { 467 printDesignation( os ); 468 os << "( "; 469 function->printOneLine( os, indent ); 470 for ( ExpressionNode *cur = arguments; cur != 0; cur = dynamic_cast< ExpressionNode* >( cur->get_link() ) ) { 471 cur->printOneLine( os, indent ); 472 } // for 473 os << ") "; 474 } 475 476 void CompositeExprNode::print( std::ostream &os, int indent ) const { 477 printDesignation( os ); 478 os << string( indent, ' ' ) << "Application of: " << endl; 479 function->print( os, indent + ParseNode::indent_by ); 480 481 os << string( indent, ' ' ) ; 482 if ( arguments ) { 483 os << "... on arguments: " << endl; 484 arguments->printList( os, indent + ParseNode::indent_by ); 485 } else 486 os << "... on no arguments: " << endl; 487 } 488 489 void CompositeExprNode::set_function( ExpressionNode *f ) { 490 function = f; 491 } 492 493 void CompositeExprNode::set_args( ExpressionNode *args ) { 494 arguments = args; 495 } 496 497 ExpressionNode *CompositeExprNode::get_function( void ) const { 498 return function; 499 } 500 501 ExpressionNode *CompositeExprNode::get_args( void ) const { 502 return arguments; 503 } 504 505 void CompositeExprNode::add_arg( ExpressionNode *arg ) { 506 if ( arguments ) 507 arguments->set_link( arg ); 508 else 509 set_args( arg ); 510 } 511 512 //############################################################################## 513 514 Expression *AsmExprNode::build() const { 515 return new AsmExpr( maybeBuild< Expression >( inout ), (ConstantExpr *)maybeBuild<Expression>(constraint), maybeBuild<Expression>(operand) ); 516 } 517 518 void AsmExprNode::print( std::ostream &os, int indent ) const { 519 os << string( indent, ' ' ) << "Assembler Expression:" << endl; 520 if ( inout ) { 521 os << string( indent, ' ' ) << "inout: " << std::endl; 522 inout->print( os, indent + 2 ); 523 } // if 524 if ( constraint ) { 525 os << string( indent, ' ' ) << "constraint: " << std::endl; 526 constraint->print( os, indent + 2 ); 527 } // if 528 if ( operand ) { 529 os << string( indent, ' ' ) << "operand: " << std::endl; 530 operand->print( os, indent + 2 ); 531 } // if 532 } 533 534 void AsmExprNode::printOneLine( std::ostream &os, int indent ) const { 535 printDesignation( os ); 536 os << "( "; 537 if ( inout ) inout->printOneLine( os, indent + 2 ); 538 os << ", "; 539 if ( constraint ) constraint->printOneLine( os, indent + 2 ); 540 os << ", "; 541 if ( operand ) operand->printOneLine( os, indent + 2 ); 542 os << ") "; 266 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ) { 267 return new AttrExpr( var, maybeBuild<Expression>(expr_node) ); 268 } 269 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) { 270 return new AttrExpr( var, decl_node->buildType() ); 271 } 272 273 Expression *build_tuple( ExpressionNode * expr_node ) { 274 TupleExpr *ret = new TupleExpr(); 275 buildList( expr_node, ret->get_exprs() ); 276 return ret; 277 } 278 279 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ) { 280 std::list<Expression *> args; 281 282 buildList( expr_node, args ); 283 return new UntypedExpr( maybeBuild<Expression>(function), args, nullptr ); 284 } 285 286 Expression *build_range( ExpressionNode * low, ExpressionNode *high ) { 287 Expression *low_cexpr = maybeBuild<Expression>( low ); 288 Expression *high_cexpr = maybeBuild<Expression>( high ); 289 return new RangeExpr( low_cexpr, high_cexpr ); 290 } 291 292 //############################################################################## 293 294 Expression *build_asm( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ) { 295 return new AsmExpr( maybeBuild< Expression >( inout ), constraint, maybeBuild<Expression>(operand) ); 543 296 } 544 297 … … 551 304 //############################################################################## 552 305 553 ValofExprNode::ValofExprNode( StatementNode *s ): body( s ) {} 554 555 ValofExprNode::ValofExprNode( const ValofExprNode &other ) : ExpressionNode( other ), body( maybeClone( body ) ) { 556 } 557 558 ValofExprNode::~ValofExprNode() { 559 delete body; 560 } 561 562 void ValofExprNode::print( std::ostream &os, int indent ) const { 563 printDesignation( os ); 564 os << string( indent, ' ' ) << "Valof Expression:" << std::endl; 565 get_body()->print( os, indent + 4); 566 } 567 568 void ValofExprNode::printOneLine( std::ostream &, int indent ) const { 569 assert( false ); 570 } 571 572 Expression *ValofExprNode::build() const { 573 return new UntypedValofExpr ( maybeBuild<Statement>(get_body()), maybeBuild< Expression >( get_argName() ) ); 574 } 575 576 //############################################################################## 577 578 ForCtlExprNode::ForCtlExprNode( ParseNode *init_, ExpressionNode *cond, ExpressionNode *incr ) throw ( SemanticError ) : condition( cond ), change( incr ) { 579 if ( init_ == 0 ) 580 init = 0; 581 else { 582 DeclarationNode *decl; 583 ExpressionNode *exp; 584 585 if (( decl = dynamic_cast<DeclarationNode *>(init_) ) != 0) 586 init = new StatementNode( decl ); 587 else if (( exp = dynamic_cast<ExpressionNode *>( init_)) != 0) 588 init = new StatementNode( StatementNode::Exp, exp ); 589 else 590 throw SemanticError("Error in for control expression"); 591 } 592 } 593 594 ForCtlExprNode::ForCtlExprNode( const ForCtlExprNode &other ) 595 : ExpressionNode( other ), init( maybeClone( other.init ) ), condition( maybeClone( other.condition ) ), change( maybeClone( other.change ) ) { 596 } 597 598 ForCtlExprNode::~ForCtlExprNode() { 599 delete init; 600 delete condition; 601 delete change; 602 } 603 604 Expression *ForCtlExprNode::build() const { 605 // this shouldn't be used! 606 assert( false ); 607 return 0; 608 } 609 610 void ForCtlExprNode::print( std::ostream &os, int indent ) const{ 611 os << string( indent,' ' ) << "For Control Expression -- :" << endl; 612 613 os << string( indent + 2, ' ' ) << "initialization:" << endl; 614 if ( init != 0 ) 615 init->printList( os, indent + 4 ); 616 617 os << string( indent + 2, ' ' ) << "condition: " << endl; 618 if ( condition != 0 ) 619 condition->print( os, indent + 4 ); 620 os << string( indent + 2, ' ' ) << "increment: " << endl; 621 if ( change != 0 ) 622 change->print( os, indent + 4 ); 623 } 624 625 void ForCtlExprNode::printOneLine( std::ostream &, int indent ) const { 626 assert( false ); 627 } 628 629 //############################################################################## 630 631 TypeValueNode::TypeValueNode( DeclarationNode *decl ) : decl( decl ) { 632 } 633 634 TypeValueNode::TypeValueNode( const TypeValueNode &other ) : ExpressionNode( other ), decl( maybeClone( other.decl ) ) { 635 } 636 637 Expression *TypeValueNode::build() const { 306 Expression *build_valexpr( StatementNode *s ) { 307 return new UntypedValofExpr( maybeBuild<Statement>(s), nullptr ); 308 } 309 310 //############################################################################## 311 312 // ForCtlExprNode::ForCtlExprNode( ParseNode *init_, ExpressionNode *cond, ExpressionNode *incr ) throw ( SemanticError ) : condition( cond ), change( incr ) { 313 // if ( init_ == 0 ) 314 // init = 0; 315 // else { 316 // DeclarationNode *decl; 317 // ExpressionNode *exp; 318 319 // if (( decl = dynamic_cast<DeclarationNode *>(init_) ) != 0) 320 // init = new StatementNode( decl ); 321 // else if (( exp = dynamic_cast<ExpressionNode *>( init_)) != 0) 322 // init = new StatementNode( StatementNode::Exp, exp ); 323 // else 324 // throw SemanticError("Error in for control expression"); 325 // } 326 // } 327 328 // ForCtlExprNode::ForCtlExprNode( const ForCtlExprNode &other ) 329 // : ExpressionNode( other ), init( maybeClone( other.init ) ), condition( maybeClone( other.condition ) ), change( maybeClone( other.change ) ) { 330 // } 331 332 // ForCtlExprNode::~ForCtlExprNode() { 333 // delete init; 334 // delete condition; 335 // delete change; 336 // } 337 338 // Expression *ForCtlExprNode::build() const { 339 // // this shouldn't be used! 340 // assert( false ); 341 // return 0; 342 // } 343 344 // void ForCtlExprNode::print( std::ostream &os, int indent ) const{ 345 // os << string( indent,' ' ) << "For Control Expression -- :" << endl; 346 347 // os << string( indent + 2, ' ' ) << "initialization:" << endl; 348 // if ( init != 0 ) 349 // init->printList( os, indent + 4 ); 350 351 // os << string( indent + 2, ' ' ) << "condition: " << endl; 352 // if ( condition != 0 ) 353 // condition->print( os, indent + 4 ); 354 // os << string( indent + 2, ' ' ) << "increment: " << endl; 355 // if ( change != 0 ) 356 // change->print( os, indent + 4 ); 357 // } 358 359 // void ForCtlExprNode::printOneLine( std::ostream &, int indent ) const { 360 // assert( false ); 361 // } 362 363 //############################################################################## 364 365 Expression *build_typevalue( DeclarationNode *decl ) { 638 366 return new TypeExpr( decl->buildType() ); 639 367 } 640 368 641 void TypeValueNode::print( std::ostream &os, int indent ) const { 642 os << std::string( indent, ' ' ) << "Type:"; 643 get_decl()->print( os, indent + 2); 644 } 645 646 void TypeValueNode::printOneLine( std::ostream &os, int indent ) const { 647 os << "Type:"; 648 get_decl()->print( os, indent + 2); 649 } 650 651 652 CompoundLiteralNode::CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ) : type( type ), kids( kids ) {} 653 CompoundLiteralNode::CompoundLiteralNode( const CompoundLiteralNode &other ) : ExpressionNode( other ), type( other.type ), kids( other.kids ) {} 654 655 CompoundLiteralNode::~CompoundLiteralNode() { 656 delete kids; 657 delete type; 658 } 659 660 CompoundLiteralNode *CompoundLiteralNode::clone() const { 661 return new CompoundLiteralNode( *this ); 662 } 663 664 void CompoundLiteralNode::print( std::ostream &os, int indent ) const { 665 os << string( indent,' ' ) << "CompoundLiteralNode:" << endl; 666 667 os << string( indent + 2, ' ' ) << "type:" << endl; 668 if ( type != 0 ) 669 type->print( os, indent + 4 ); 670 671 os << string( indent + 2, ' ' ) << "initialization:" << endl; 672 if ( kids != 0 ) 673 kids->printList( os, indent + 4 ); 674 } 675 676 void CompoundLiteralNode::printOneLine( std::ostream &os, int indent ) const { 677 os << "( "; 678 if ( type ) type->print( os ); 679 os << ", "; 680 if ( kids ) kids->printOneLine( os ); 681 os << ") "; 682 } 683 684 Expression *CompoundLiteralNode::build() const { 685 Declaration * newDecl = maybeBuild<Declaration>(type); // compound literal type 369 //############################################################################## 370 371 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ) { 372 Declaration * newDecl = maybeBuild<Declaration>(decl_node); // compound literal type 686 373 if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 687 374 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeBuild<Initializer>(kids) ); … … 698 385 } 699 386 700 ExpressionNode *flattenCommas( ExpressionNode *list ) {701 if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) ) {702 OperatorNode *op;703 if ( ( op = dynamic_cast< OperatorNode * >( composite->get_function() )) && ( op->get_type() == OperatorNode::Comma ) ) {704 if ( ExpressionNode *next = dynamic_cast< ExpressionNode * >( list->get_link() ) )705 composite->add_arg( next );706 return flattenCommas( composite->get_args() );707 } // if708 } // if709 710 if ( ExpressionNode *next = dynamic_cast< ExpressionNode * >( list->get_link() ) )711 list->set_next( flattenCommas( next ) );712 713 return list;714 }715 716 ExpressionNode *tupleContents( ExpressionNode *tuple ) {717 if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( tuple ) ) {718 OperatorNode *op = 0;719 if ( ( op = dynamic_cast< OperatorNode * >( composite->get_function() )) && ( op->get_type() == OperatorNode::TupleC ) )720 return composite->get_args();721 } // if722 return tuple;723 }724 725 387 // Local Variables: // 726 388 // tab-width: 4 // -
src/Parser/ParseNode.cc
rf18a711 r3078643 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jul 24 02:17:01201613 // Update Count : 9 012 // Last Modified On : Sun Aug 7 23:32:47 2016 13 // Update Count : 94 14 14 // 15 15 16 #include <climits>17 16 #include "ParseNode.h" 18 17 using namespace std; 19 20 // Difficult to separate extra parts of constants during lexing because actions are not allow in the middle of patterns:21 //22 // prefix action constant action suffix23 //24 // Alternatively, breaking a pattern using BEGIN does not work if the following pattern can be empty:25 //26 // constant BEGIN CONT ...27 // <CONT>(...)? BEGIN 0 ... // possible empty suffix28 //29 // because the CONT rule is NOT triggered if the pattern is empty. Hence, constants are reparsed here to determine their30 // type.31 32 static Type::Qualifiers emptyQualifiers; // no qualifiers on constants33 34 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; }35 static inline bool checkL( char c ) { return c == 'l' || c == 'L'; }36 static inline bool checkF( char c ) { return c == 'f' || c == 'F'; }37 static inline bool checkD( char c ) { return c == 'd' || c == 'D'; }38 static inline bool checkI( char c ) { return c == 'i' || c == 'I'; }39 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }40 41 ConstantNode *makeConstantInteger( std::string & str ) {42 static const BasicType::Kind kind[2][3] = {43 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt },44 { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt },45 };46 bool dec = true, Unsigned = false; // decimal, unsigned constant47 int size; // 0 => int, 1 => long, 2 => long long48 unsigned long long v; // converted integral value49 size_t last = str.length() - 1; // last character of constant50 51 if ( str[0] == '0' ) { // octal/hex constant ?52 dec = false;53 if ( last != 0 && checkX( str[1] ) ) { // hex constant ?54 sscanf( (char *)str.c_str(), "%llx", &v );55 //printf( "%llx %llu\n", v, v );56 } else { // octal constant57 sscanf( (char *)str.c_str(), "%llo", &v );58 //printf( "%llo %llu\n", v, v );59 } // if60 } else { // decimal constant ?61 sscanf( (char *)str.c_str(), "%llu", &v );62 //printf( "%llu %llu\n", v, v );63 } // if64 65 if ( v <= INT_MAX ) { // signed int66 size = 0;67 } else if ( v <= UINT_MAX && ! dec ) { // unsigned int68 size = 0;69 Unsigned = true; // unsigned70 } else if ( v <= LONG_MAX ) { // signed long int71 size = 1;72 } else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int73 size = 1;74 Unsigned = true; // unsigned long int75 } else if ( v <= LLONG_MAX ) { // signed long long int76 size = 2;77 } else { // unsigned long long int78 size = 2;79 Unsigned = true; // unsigned long long int80 } // if81 82 if ( checkU( str[last] ) ) { // suffix 'u' ?83 Unsigned = true;84 if ( last > 0 && checkL( str[last - 1] ) ) { // suffix 'l' ?85 size = 1;86 if ( last > 1 && checkL( str[last - 2] ) ) { // suffix 'll' ?87 size = 2;88 } // if89 } // if90 } else if ( checkL( str[ last ] ) ) { // suffix 'l' ?91 size = 1;92 if ( last > 0 && checkL( str[last - 1] ) ) { // suffix 'll' ?93 size = 2;94 if ( last > 1 && checkU( str[last - 2] ) ) { // suffix 'u' ?95 Unsigned = true;96 } // if97 } else {98 if ( last > 0 && checkU( str[last - 1] ) ) { // suffix 'u' ?99 Unsigned = true;100 } // if101 } // if102 } // if103 104 return new ConstantNode( new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ), nullptr ) );105 } // makeConstantInteger106 107 ConstantNode *makeConstantFloat( std::string & str ) {108 static const BasicType::Kind kind[2][3] = {109 { BasicType::Float, BasicType::Double, BasicType::LongDouble },110 { BasicType::FloatComplex, BasicType::DoubleComplex, BasicType::LongDoubleComplex },111 };112 113 bool complx = false; // real, complex114 int size = 1; // 0 => float, 1 => double (default), 2 => long double115 // floating-point constant has minimum of 2 characters: 1. or .1116 size_t last = str.length() - 1;117 118 if ( checkI( str[last] ) ) { // imaginary ?119 complx = true;120 last -= 1; // backup one character121 } // if122 123 if ( checkF( str[last] ) ) { // float ?124 size = 0;125 } else if ( checkD( str[last] ) ) { // double ?126 size = 1;127 } else if ( checkL( str[last] ) ) { // long double ?128 size = 2;129 } // if130 if ( ! complx && checkI( str[last - 1] ) ) { // imaginary ?131 complx = true;132 } // if133 134 return new ConstantNode( new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ), nullptr ) );135 } // makeConstantFloat136 137 ConstantNode *makeConstantChar( std::string & str ) {138 return new ConstantNode( new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ), nullptr ) );139 } // makeConstantChar140 141 ConstantNode *makeConstantStr( std::string & str ) {142 // string should probably be a primitive type143 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ),144 new ConstantExpr(145 Constant( new BasicType( emptyQualifiers, BasicType::UnsignedInt ),146 toString( str.size()+1-2 ) ) ), // +1 for '\0' and -2 for '"'147 false, false );148 return new ConstantNode( new ConstantExpr( Constant( at, str ), nullptr ) );149 } // makeConstantStr150 151 18 152 19 // Builder -
src/Parser/ParseNode.h
rf18a711 r3078643 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Aug 5 07:49:32201613 // Update Count : 28812 // Last Modified On : Wed Aug 10 13:08:46 2016 13 // Update Count : 436 14 14 // 15 15 … … 26 26 #include "SynTree/Type.h" 27 27 #include "SynTree/Expression.h" 28 #include "SynTree/Statement.h" 28 29 //#include "SynTree/Declaration.h" 29 30 #include "Common/UniqueName.h" 30 31 #include "SynTree/Label.h" 31 32 32 class ExpressionNode;33 class CompositeExprNode;34 class CommaExprNode;35 33 class StatementNode; 36 34 class CompoundStmtNode; 37 35 class DeclarationNode; 36 class ExpressionNode; 38 37 class InitializerNode; 39 38 … … 56 55 void set_name( const std::string &newValue ) { name = newValue; } 57 56 58 virtual void print( std::ostream & , int indent = 0 ) const;59 virtual void printList( std::ostream & , int indent = 0 ) const;60 61 ParseNode &operator,( ParseNode & );57 virtual void print( std::ostream &os, int indent = 0 ) const; 58 virtual void printList( std::ostream &os, int indent = 0 ) const; 59 60 ParseNode &operator,( ParseNode & ); 62 61 protected: 63 62 std::string name; … … 68 67 ParseNode *mkList( ParseNode & ); 69 68 69 //############################################################################## 70 71 class InitializerNode : public ParseNode { 72 public: 73 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode *des = 0 ); 74 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode *des = 0 ); 75 ~InitializerNode(); 76 77 ExpressionNode *get_expression() const { return expr; } 78 79 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; } 80 ExpressionNode *get_designators() const { return designator; } 81 82 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; } 83 bool get_maybeConstructed() const { return maybeConstructed; } 84 85 InitializerNode *next_init() const { return kids; } 86 87 void print( std::ostream &os, int indent = 0 ) const; 88 void printOneLine( std::ostream & ) const; 89 90 virtual Initializer *build() const; 91 private: 92 ExpressionNode *expr; 93 bool aggregate; 94 ExpressionNode *designator; // may be list 95 InitializerNode *kids; 96 bool maybeConstructed; 97 }; 98 99 //############################################################################## 100 70 101 class ExpressionNode : public ParseNode { 71 102 public: 72 ExpressionNode( );73 ExpressionNode( const std::string * );103 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} 104 ExpressionNode( Expression * expr, const std::string *name ) : ParseNode( name ), expr( expr ) {} 74 105 ExpressionNode( const ExpressionNode &other ); 75 virtual ~ExpressionNode() { delete argName; } // cannot delete argName because it might be referenced elsewhere 76 77 virtual ExpressionNode *clone() const = 0; 78 79 // virtual CommaExprNode *add_to_list( ExpressionNode * ); 80 81 ExpressionNode *get_argName() const { return argName; } 82 ExpressionNode *set_argName( const std::string *aName ); 83 ExpressionNode *set_argName( ExpressionNode *aDesignator ); 106 virtual ~ExpressionNode() {} 107 108 virtual ExpressionNode *clone() const { return 0; } 109 84 110 bool get_extension() const { return extension; } 85 111 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; } 86 112 87 virtual void print( std::ostream &, int indent = 0) const = 0; 88 virtual void printOneLine( std::ostream &, int indent = 0) const = 0; 89 90 virtual Expression *build() const = 0; 91 protected: 92 void printDesignation ( std::ostream &, int indent = 0) const; 93 private: 94 ExpressionNode *argName = 0; 113 virtual void print( std::ostream &os, int indent = 0 ) const {} 114 virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 115 116 virtual Expression *build() const { return expr; } 117 private: 95 118 bool extension = false; 119 Expression *expr; 96 120 }; 97 121 … … 109 133 }; 110 134 111 // NullExprNode is used in tuples as a place-holder where a tuple component is omitted e.g., [ 2, , 3 ] 112 class NullExprNode : public ExpressionNode { 113 public: 114 NullExprNode(); 115 116 virtual NullExprNode *clone() const; 117 118 virtual void print( std::ostream &, int indent = 0) const; 119 virtual void printOneLine( std::ostream &, int indent = 0) const; 120 121 virtual Expression *build() const; 122 }; 123 124 class ConstantNode : public ExpressionNode { 125 public: 126 enum Type { Integer, Float, Character, String }; 127 128 ConstantNode( ConstantExpr * ); 129 ConstantNode( const ConstantNode &other ) : expr( other.expr->clone() ) {}; 130 ~ConstantNode() { delete expr; } 131 132 virtual ConstantNode *clone() const { return new ConstantNode( *this ); } 133 virtual void print( std::ostream &, int indent = 0) const; 134 virtual void printOneLine( std::ostream &, int indent = 0) const; 135 136 ConstantNode *appendstr( const std::string *newValue ); 137 138 Expression *build() const; 139 private: 140 ConstantExpr *expr; 141 }; 142 143 ConstantNode *makeConstantInteger( std::string & ); 144 ConstantNode *makeConstantFloat( std::string & ); 145 ConstantNode *makeConstantChar( std::string & ); 146 ConstantNode *makeConstantStr( std::string & ); 147 148 class VarRefNode : public ExpressionNode { 149 public: 150 VarRefNode(); 151 VarRefNode( const std::string *, bool isLabel = false ); 152 VarRefNode( const VarRefNode &other ); 153 154 virtual Expression *build() const ; 155 156 virtual VarRefNode *clone() const { return new VarRefNode( *this ); } 157 158 virtual void print( std::ostream &, int indent = 0 ) const; 159 virtual void printOneLine( std::ostream &, int indent = 0 ) const; 160 private: 161 bool isLabel; 162 }; 163 164 class DesignatorNode : public ExpressionNode { 165 public: 166 DesignatorNode( ExpressionNode *expr, bool isArrayIndex = false ); 167 DesignatorNode( const DesignatorNode &other ); 168 169 virtual Expression *build() const ; 170 virtual DesignatorNode *clone() const { return new DesignatorNode( *this ); } 171 172 virtual void print( std::ostream &, int indent = 0 ) const; 173 virtual void printOneLine( std::ostream &, int indent = 0 ) const; 174 private: 175 bool isArrayIndex; 176 }; 177 178 class TypeValueNode : public ExpressionNode { 179 public: 180 TypeValueNode( DeclarationNode * ); 181 TypeValueNode( const TypeValueNode &other ); 182 183 DeclarationNode *get_decl() const { return decl; } 184 185 virtual Expression *build() const ; 186 187 virtual TypeValueNode *clone() const { return new TypeValueNode( *this ); } 188 189 virtual void print( std::ostream &, int indent = 0) const; 190 virtual void printOneLine( std::ostream &, int indent = 0) const; 191 private: 192 DeclarationNode *decl; 193 }; 194 195 class OperatorNode : public ExpressionNode { 196 public: 197 enum Type { TupleC, Comma, TupleFieldSel, // n-adic 198 // triadic 199 Cond, NCond, 200 // diadic 201 SizeOf, AlignOf, OffsetOf, Attr, Plus, Minus, Mul, Div, Mod, Or, And, 202 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 203 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, 204 Index, FieldSel, PFieldSel, Range, 205 // monadic 206 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress, 207 Ctor, Dtor, 208 }; 209 210 OperatorNode( Type t ); 211 OperatorNode( const OperatorNode &other ); 212 virtual ~OperatorNode(); 213 214 virtual OperatorNode *clone() const { return new OperatorNode( *this ); } 215 216 Type get_type() const; 217 const char *get_typename() const; 218 219 virtual void print( std::ostream &, int indent = 0) const; 220 virtual void printOneLine( std::ostream &, int indent = 0) const; 221 222 virtual Expression *build() const { return 0; } 223 private: 224 Type type; 225 }; 226 227 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node ); 228 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member ); 229 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member ); 135 //############################################################################## 136 137 Expression *build_constantInteger( std::string &str ); 138 Expression *build_constantFloat( std::string &str ); 139 Expression *build_constantChar( std::string &str ); 140 ConstantExpr *build_constantStr( std::string &str ); 141 142 //############################################################################## 143 144 NameExpr *build_varref( const std::string *name, bool labelp = false ); 145 146 //############################################################################## 147 148 Expression *build_typevalue( DeclarationNode *decl ); 149 150 //############################################################################## 151 152 enum class OperKinds { 153 // diadic 154 SizeOf, AlignOf, OffsetOf, Plus, Minus, Mul, Div, Mod, Or, And, 155 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 156 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, 157 Index, Range, 158 // monadic 159 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress, 160 Ctor, Dtor, 161 }; 162 163 Expression *build_cast( DeclarationNode * decl_node, ExpressionNode *expr_node ); 164 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ); 165 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ); 230 166 Expression *build_addressOf( ExpressionNode *expr_node ); 231 Expression *build_sizeOf( ExpressionNode *expr_node ); 232 Expression *build_alignOf( ExpressionNode *expr_node ); 233 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ); 167 Expression *build_sizeOfexpr( ExpressionNode *expr_node ); 168 Expression *build_sizeOftype( DeclarationNode *decl_node ); 169 Expression *build_alignOfexpr( ExpressionNode *expr_node ); 170 Expression *build_alignOftype( DeclarationNode *decl_node ); 171 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ); 234 172 Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 235 173 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ); 236 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ); 237 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 174 Expression *build_unary_val( OperKinds op, ExpressionNode *expr_node ); 175 Expression *build_unary_ptr( OperKinds op, ExpressionNode *expr_node ); 176 Expression *build_binary_val( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 177 Expression *build_binary_ptr( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 238 178 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ); 239 179 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 240 241 class CompositeExprNode2 : public ExpressionNode { 242 public: 243 CompositeExprNode2( Expression *expr ); 244 CompositeExprNode2( const CompositeExprNode2 &other ); 245 virtual ~CompositeExprNode2(); 246 247 virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); } 248 virtual Expression *build() const { return expr->clone(); } 249 250 virtual void print( std::ostream &, int indent = 0) const; 251 virtual void printOneLine( std::ostream &, int indent = 0) const; 252 private: 253 Expression *expr; 254 }; 255 256 class CompositeExprNode : public ExpressionNode { 257 public: 258 CompositeExprNode(); 259 CompositeExprNode( const std::string * ); 260 CompositeExprNode( ExpressionNode *f, ExpressionNode *args = 0 ); 261 CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2 ); 262 CompositeExprNode( const CompositeExprNode &other ); 263 virtual ~CompositeExprNode(); 264 265 virtual CompositeExprNode *clone() const { return new CompositeExprNode( *this ); } 266 virtual Expression *build() const; 267 268 virtual void print( std::ostream &, int indent = 0) const; 269 virtual void printOneLine( std::ostream &, int indent = 0) const; 270 271 void set_function( ExpressionNode * ); 272 void set_args( ExpressionNode * ); 273 274 void add_arg( ExpressionNode * ); 275 276 ExpressionNode *get_function() const; 277 ExpressionNode *get_args() const; 278 private: 279 ExpressionNode *function; 280 ExpressionNode *arguments; 281 }; 282 283 class AsmExprNode : public ExpressionNode { 284 public: 285 AsmExprNode(); 286 AsmExprNode( ExpressionNode *inout, ConstantNode *constraint, ExpressionNode *operand ) : inout( inout ), constraint( constraint ), operand( operand ) {} 287 virtual ~AsmExprNode() { delete inout; delete constraint; delete operand; } 288 289 virtual AsmExprNode *clone() const { return new AsmExprNode( *this ); } 290 virtual Expression *build() const; 291 292 virtual void print( std::ostream &, int indent = 0) const; 293 virtual void printOneLine( std::ostream &, int indent = 0) const; 294 295 ExpressionNode *get_inout() const { return inout; }; 296 void set_inout( ExpressionNode *newValue ) { inout = newValue; } 297 298 ConstantNode *get_constraint() const { return constraint; }; 299 void set_constraint( ConstantNode *newValue ) { constraint = newValue; } 300 301 ExpressionNode *get_operand() const { return operand; }; 302 void set_operand( ExpressionNode *newValue ) { operand = newValue; } 303 private: 304 ExpressionNode *inout; 305 ConstantNode *constraint; 306 ExpressionNode *operand; 307 }; 180 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ); 181 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ); 182 Expression *build_tuple( ExpressionNode * expr_node = 0 ); 183 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ); 184 Expression *build_range( ExpressionNode * low, ExpressionNode *high ); 185 186 //############################################################################## 187 188 Expression *build_asm( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ); 189 190 //############################################################################## 308 191 309 192 class LabelNode : public ExpressionNode { 310 193 public: 311 194 virtual Expression *build() const { return NULL; } 312 virtual LabelNode *clone() const { return new LabelNode( *this ); }313 314 virtual void print( std::ostream & , int indent = 0) const;315 virtual void printOneLine( std::ostream & , int indent = 0) const;195 virtual LabelNode *clone() const { assert( false ); return new LabelNode( *this ); } 196 197 virtual void print( std::ostream &os, int indent = 0) const; 198 virtual void printOneLine( std::ostream &os, int indent = 0) const; 316 199 317 200 const std::list< Label > &get_labels() const { return labels; }; 318 void append_label( std::string * label ) { labels.push_back( *label ); delete label; }201 void append_label( std::string * label ) { labels.push_back( *label ); delete label; } 319 202 private: 320 203 std::list< Label > labels; 321 204 }; 322 205 323 class ForCtlExprNode : public ExpressionNode { 324 public: 325 ForCtlExprNode( ParseNode *, ExpressionNode *, ExpressionNode * ) throw ( SemanticError ); 326 ForCtlExprNode( const ForCtlExprNode &other ); 327 ~ForCtlExprNode(); 328 329 StatementNode *get_init() const { return init; } 330 ExpressionNode *get_condition() const { return condition; } 331 ExpressionNode *get_change() const { return change; } 332 333 virtual ForCtlExprNode *clone() const { return new ForCtlExprNode( *this ); } 334 virtual Expression *build() const; 335 336 virtual void print( std::ostream &, int indent = 0 ) const; 337 virtual void printOneLine( std::ostream &, int indent = 0 ) const; 338 private: 339 StatementNode *init; 340 ExpressionNode *condition; 341 ExpressionNode *change; 342 }; 343 344 class ValofExprNode : public ExpressionNode { 345 public: 346 ValofExprNode(); 347 ValofExprNode( StatementNode *s = 0 ); 348 ValofExprNode( const ValofExprNode &other ); 349 ~ValofExprNode(); 350 351 virtual ValofExprNode *clone() const { return new ValofExprNode( *this ); } 352 353 StatementNode *get_body() const { return body; } 354 void print( std::ostream &, int indent = 0 ) const; 355 void printOneLine( std::ostream &, int indent = 0 ) const; 356 Expression *build() const; 357 358 private: 359 StatementNode *body; 360 }; 206 //############################################################################## 207 208 Expression *build_valexpr( StatementNode *s ); 209 210 //############################################################################## 211 212 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ); 213 214 //############################################################################## 361 215 362 216 class TypeData; … … 433 287 434 288 DeclarationNode *clone() const; 435 void print( std::ostream & , int indent = 0 ) const;436 void printList( std::ostream & , int indent = 0 ) const;289 void print( std::ostream &os, int indent = 0 ) const; 290 void printList( std::ostream &os, int indent = 0 ) const; 437 291 438 292 Declaration *build() const; … … 468 322 }; // DeclarationNode 469 323 324 Type *buildType( TypeData *type ); 325 326 //############################################################################## 327 470 328 class StatementNode : public ParseNode { 471 329 public: … … 487 345 static StatementNode *newCatchStmt( DeclarationNode *d = 0, StatementNode *s = 0, bool catchRestP = false ); 488 346 489 StatementNode *set_block( StatementNode *b ) { 347 StatementNode *set_block( StatementNode *b ) { block = b; return this; } 490 348 StatementNode *get_block() const { return block; } 491 349 … … 495 353 StatementNode::Type get_type() const { return type; } 496 354 497 StatementNode *add_label( const std::string * );498 const std::list<std::string> &get_labels() const { return labels; }355 virtual StatementNode *add_label( const std::string * ); 356 virtual std::list<std::string> get_labels() const { return labels; } 499 357 500 358 void addDeclaration( DeclarationNode *newDecl ) { decl = newDecl; } … … 507 365 StatementNode *append_last_case( StatementNode * ); 508 366 509 void print( std::ostream & , int indent = 0) const;367 void print( std::ostream &os, int indent = 0) const; 510 368 virtual StatementNode *clone() const; 511 369 virtual Statement *build() const; … … 521 379 }; // StatementNode 522 380 381 class StatementNode2 : public StatementNode { 382 public: 383 StatementNode2() {} 384 StatementNode2( Statement *stmt ) : stmt( stmt ) {} 385 virtual ~StatementNode2() {} 386 387 virtual StatementNode2 *clone() const { assert( false ); return nullptr; } 388 virtual Statement *build() const { return stmt; } 389 390 virtual StatementNode2 *add_label( const std::string * name ) { 391 stmt->get_labels().emplace_back( *name ); 392 return this; 393 } 394 virtual std::list<std::string> get_labels() const { assert( false ); return StatementNode::get_labels(); } 395 396 virtual void print( std::ostream &os, int indent = 0 ) {} 397 virtual void printList( std::ostream &os, int indent = 0 ) {} 398 private: 399 Statement *stmt; 400 }; // StatementNode 401 402 struct ForCtl { 403 ForCtl( ExpressionNode *expr, ExpressionNode *condition, ExpressionNode *change ) : 404 init( new StatementNode( StatementNode::Exp, expr ) ), condition( condition ), change( change ) {} 405 ForCtl( DeclarationNode *decl, ExpressionNode *condition, ExpressionNode *change ) : 406 init( new StatementNode( decl ) ), condition( condition ), change( change ) {} 407 408 StatementNode *init; 409 ExpressionNode *condition; 410 ExpressionNode *change; 411 }; 412 413 Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ); 414 Statement *build_switch( ExpressionNode *ctl, StatementNode *stmt ); 415 Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind = false ); 416 Statement *build_for( ForCtl *forctl, StatementNode *stmt ); 417 418 //############################################################################## 419 523 420 class CompoundStmtNode : public StatementNode { 524 421 public: … … 530 427 void add_statement( StatementNode * ); 531 428 532 void print( std::ostream & , int indent = 0 ) const;429 void print( std::ostream &os, int indent = 0 ) const; 533 430 virtual Statement *build() const; 534 431 private: … … 536 433 }; 537 434 435 //############################################################################## 436 538 437 class AsmStmtNode : public StatementNode { 539 438 public: 540 AsmStmtNode( Type, bool voltile, Constant Node *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ConstantNode *clobber = 0, LabelNode *gotolabels = 0 );439 AsmStmtNode( Type, bool voltile, ConstantExpr *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ExpressionNode *clobber = 0, LabelNode *gotolabels = 0 ); 541 440 ~AsmStmtNode(); 542 441 543 void print( std::ostream & , int indent = 0 ) const;442 void print( std::ostream &os, int indent = 0 ) const; 544 443 Statement *build() const; 545 444 private: 546 445 bool voltile; 547 Constant Node*instruction;446 ConstantExpr *instruction; 548 447 ExpressionNode *output, *input; 549 ConstantNode *clobber;448 ExpressionNode *clobber; 550 449 std::list< Label > gotolabels; 551 450 }; 552 451 553 class InitializerNode : public ParseNode { 554 public: 555 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode *des = 0 ); 556 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode *des = 0 ); 557 ~InitializerNode(); 558 559 ExpressionNode *get_expression() const { return expr; } 560 561 InitializerNode *set_designators( ExpressionNode *des ) { designator = des; return this; } 562 ExpressionNode *get_designators() const { return designator; } 563 564 InitializerNode *set_maybeConstructed( bool value ) { maybeConstructed = value; return this; } 565 bool get_maybeConstructed() const { return maybeConstructed; } 566 567 InitializerNode *next_init() const { return kids; } 568 569 void print( std::ostream &, int indent = 0 ) const; 570 void printOneLine( std::ostream & ) const; 571 572 virtual Initializer *build() const; 573 private: 574 ExpressionNode *expr; 575 bool aggregate; 576 ExpressionNode *designator; // may be list 577 InitializerNode *kids; 578 bool maybeConstructed; 579 }; 580 581 class CompoundLiteralNode : public ExpressionNode { 582 public: 583 CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ); 584 CompoundLiteralNode( const CompoundLiteralNode &type ); 585 ~CompoundLiteralNode(); 586 587 virtual CompoundLiteralNode *clone() const; 588 589 DeclarationNode *get_type() const { return type; } 590 CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; } 591 592 InitializerNode *get_initializer() const { return kids; } 593 CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; } 594 595 void print( std::ostream &, int indent = 0 ) const; 596 void printOneLine( std::ostream &, int indent = 0 ) const; 597 598 virtual Expression *build() const; 599 private: 600 DeclarationNode *type; 601 InitializerNode *kids; 602 }; 452 //############################################################################## 603 453 604 454 template< typename SynTreeType, typename NodeType > 605 void buildList( const NodeType *firstNode, std::list< SynTreeType * > &outputList ) {455 void buildList( const NodeType *firstNode, std::list< SynTreeType * > &outputList ) { 606 456 SemanticError errors; 607 457 std::back_insert_iterator< std::list< SynTreeType *> > out( outputList ); … … 631 481 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ); 632 482 633 // in ExpressionNode.cc634 ExpressionNode *flattenCommas( ExpressionNode *list );635 ExpressionNode *tupleContents( ExpressionNode *tuple );636 637 483 #endif // PARSENODE_H 638 484 -
src/Parser/StatementNode.cc
rf18a711 r3078643 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:21:02201613 // Update Count : 1 3312 // Last Modified On : Wed Aug 10 13:54:21 2016 13 // Update Count : 170 14 14 // 15 15 … … 106 106 return this; 107 107 } 108 109 // StatementNode *StatementNode::add_controlexp( ExpressionNode *e ) {110 // if ( control && e )111 // control->add_to_list( e ); // xxx - check this112 // return this;113 // }114 108 115 109 StatementNode *StatementNode::append_block( StatementNode *stmt ) { … … 176 170 } // if 177 171 if ( block ) { 178 os << string( indent + ParseNode::indent_by, ' ' ) << " Branches of execution: " << endl;172 os << string( indent + ParseNode::indent_by, ' ' ) << "Cases: " << endl; 179 173 block->printList( os, indent + 2 * ParseNode::indent_by ); 180 174 } // if … … 212 206 } 213 207 case If: 214 { 215 Statement *thenb = 0, *elseb = 0; 216 assert( branches.size() >= 1 ); 217 218 thenb = branches.front(); 219 branches.pop_front(); 220 if ( ! branches.empty() ) { 221 elseb = branches.front(); 222 branches.pop_front(); 223 } // if 224 return new IfStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), thenb, elseb ); 225 } 226 case While: 227 assert( branches.size() == 1 ); 228 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front() ); 229 case Do: 230 assert( branches.size() == 1 ); 231 return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front(), true ); 232 case For: 233 { 234 assert( branches.size() == 1 ); 235 236 ForCtlExprNode *ctl = dynamic_cast<ForCtlExprNode *>( get_control() ); 237 assert( ctl != 0 ); 238 239 std::list<Statement *> init; 240 if ( ctl->get_init() != 0 ) { 241 buildList( ctl->get_init(), init ); 242 } // if 243 244 Expression *cond = 0; 245 if ( ctl->get_condition() != 0 ) 246 cond = notZeroExpr( maybeBuild<Expression>(ctl->get_condition()) ); 247 248 Expression *incr = 0; 249 if ( ctl->get_change() != 0 ) 250 incr = maybeBuild<Expression>(ctl->get_change()); 251 252 return new ForStmt( labs, init, cond, incr, branches.front() ); 253 } 208 // { 209 // Statement *thenb = 0, *elseb = 0; 210 // assert( branches.size() >= 1 ); 211 212 // thenb = branches.front(); 213 // branches.pop_front(); 214 // if ( ! branches.empty() ) { 215 // elseb = branches.front(); 216 // branches.pop_front(); 217 // } // if 218 // return new IfStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), thenb, elseb ); 219 // } 220 assert( false ); 254 221 case Switch: 255 return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches ); 222 //return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches ); 223 assert( false ); 256 224 case Case: 257 return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches );225 return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches ); 258 226 case Default: 259 227 return new CaseStmt( labs, 0, branches, true ); 228 case While: 229 // assert( branches.size() == 1 ); 230 // return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front() ); 231 assert( false ); 232 case Do: 233 // assert( branches.size() == 1 ); 234 // return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front(), true ); 235 assert( false ); 236 case For: 237 // { 238 // assert( branches.size() == 1 ); 239 240 // ForCtlExprNode *ctl = dynamic_cast<ForCtlExprNode *>( get_control() ); 241 // assert( ctl != 0 ); 242 243 // std::list<Statement *> init; 244 // if ( ctl->get_init() != 0 ) { 245 // buildList( ctl->get_init(), init ); 246 // } // if 247 248 // Expression *cond = 0; 249 // if ( ctl->get_condition() != 0 ) 250 // cond = notZeroExpr( maybeBuild<Expression>(ctl->get_condition()) ); 251 252 // Expression *incr = 0; 253 // if ( ctl->get_change() != 0 ) 254 // incr = maybeBuild<Expression>(ctl->get_change()); 255 256 // return new ForStmt( labs, init, cond, incr, branches.front() ); 257 // } 258 assert( false ); 260 259 case Goto: 261 260 { … … 311 310 } 312 311 312 Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ) { 313 Statement *thenb, *elseb = 0; 314 std::list<Statement *> branches; 315 buildList<Statement, StatementNode>( then_stmt, branches ); 316 assert( branches.size() >= 1 ); 317 thenb = branches.front(); 318 319 if ( else_stmt ) { 320 std::list<Statement *> branches; 321 buildList<Statement, StatementNode>( else_stmt, branches ); 322 assert( branches.size() >= 1 ); 323 elseb = branches.front(); 324 } // if 325 return new IfStmt( noLabels, notZeroExpr( maybeBuild<Expression>(ctl) ), thenb, elseb ); 326 } 327 328 Statement *build_switch( ExpressionNode *ctl, StatementNode *stmt ) { 329 std::list<Statement *> branches; 330 buildList<Statement, StatementNode>( stmt, branches ); 331 assert( branches.size() >= 1 ); 332 return new SwitchStmt( noLabels, maybeBuild<Expression>(ctl), branches ); 333 } 334 335 Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind ) { 336 std::list<Statement *> branches; 337 buildList<Statement, StatementNode>( stmt, branches ); 338 assert( branches.size() == 1 ); 339 return new WhileStmt( noLabels, notZeroExpr( maybeBuild<Expression>(ctl) ), branches.front(), kind ); 340 } 341 342 Statement *build_for( ForCtl *forctl, StatementNode *stmt ) { 343 std::list<Statement *> branches; 344 buildList<Statement, StatementNode>( stmt, branches ); 345 assert( branches.size() == 1 ); 346 347 std::list<Statement *> init; 348 if ( forctl->init != 0 ) { 349 buildList( forctl->init, init ); 350 } // if 351 352 Expression *cond = 0; 353 if ( forctl->condition != 0 ) 354 cond = notZeroExpr( maybeBuild<Expression>(forctl->condition) ); 355 356 Expression *incr = 0; 357 if ( forctl->change != 0 ) 358 incr = maybeBuild<Expression>(forctl->change); 359 360 delete forctl; 361 return new ForStmt( noLabels, init, cond, incr, branches.front() ); 362 } 363 313 364 314 365 CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {} … … 356 407 357 408 358 AsmStmtNode::AsmStmtNode( Type t, bool voltile, Constant Node *instruction, ExpressionNode *output, ExpressionNode *input, ConstantNode *clobber, LabelNode *gotolabels ) :409 AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantExpr *instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) : 359 410 StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) { 360 411 if ( gotolabels ) { … … 365 416 366 417 AsmStmtNode::~AsmStmtNode() { 367 delete instruction; deleteoutput; delete input; delete clobber;418 delete output; delete input; delete clobber; 368 419 } 369 420 … … 373 424 if ( instruction ) { 374 425 os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl; 375 instruction->printList( os, indent + 2 * ParseNode::indent_by );426 // instruction->printList( os, indent + 2 * ParseNode::indent_by ); 376 427 } // if 377 428 if ( output ) { … … 385 436 if ( clobber ) { 386 437 os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl; 387 clobber->printList( os, indent + 2 * ParseNode::indent_by );438 // clobber->printList( os, indent + 2 * ParseNode::indent_by ); 388 439 } // if 389 440 if ( ! gotolabels.empty() ) { … … 414 465 buildList( clobber, clob ); 415 466 std::list< Label > gotolabs = gotolabels; 416 return new AsmStmt( labs, voltile, (ConstantExpr *)maybeBuild< Expression >( instruction ), out, in, clob, gotolabs );467 return new AsmStmt( labs, voltile, instruction, out, in, clob, gotolabs ); 417 468 } 418 469 -
src/Parser/TypeData.cc
rf18a711 r3078643 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 13 18:03:29201613 // Update Count : 5 612 // Last Modified On : Sun Aug 7 07:51:48 2016 13 // Update Count : 58 14 14 // 15 15 … … 182 182 break; 183 183 case Array: 184 newtype->array->dimension = maybeClone( array->dimension ); 184 //PAB newtype->array->dimension = maybeClone( array->dimension ); 185 newtype->array->dimension = array->dimension; 185 186 newtype->array->isVarLen = array->isVarLen; 186 187 newtype->array->isStatic = array->isStatic; -
src/Parser/parser.cc
rf18a711 r3078643 89 89 TypedefTable typedefTable; 90 90 91 void appendStr( std::string &to, std::string *from ) { 92 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 93 to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) ); 94 } // appendStr 95 91 96 92 97 /* Line 268 of yacc.c */ 93 #line 9 4"Parser/parser.cc"98 #line 99 "Parser/parser.cc" 94 99 95 100 /* Enabling traces. */ … … 342 347 343 348 /* Line 293 of yacc.c */ 344 #line 11 0"parser.yy"349 #line 115 "parser.yy" 345 350 346 351 Token tok; … … 351 356 DeclarationNode::TypeClass tclass; 352 357 StatementNode *sn; 353 ConstantNode *constant; 358 ConstantExpr *constant; 359 ForCtl *fctl; 354 360 LabelNode *label; 355 361 InitializerNode *in; 356 Oper atorNode::Typeop;362 OperKinds op; 357 363 bool flag; 358 364 … … 360 366 361 367 /* Line 293 of yacc.c */ 362 #line 36 3"Parser/parser.cc"368 #line 369 "Parser/parser.cc" 363 369 } YYSTYPE; 364 370 # define YYSTYPE_IS_TRIVIAL 1 … … 372 378 373 379 /* Line 343 of yacc.c */ 374 #line 3 75"Parser/parser.cc"380 #line 381 "Parser/parser.cc" 375 381 376 382 #ifdef short … … 589 595 590 596 /* YYFINAL -- State number of the termination state. */ 591 #define YYFINAL 25 2597 #define YYFINAL 251 592 598 /* YYLAST -- Last index in YYTABLE. */ 593 #define YYLAST 1 2080599 #define YYLAST 10816 594 600 595 601 /* YYNTOKENS -- Number of terminals. */ … … 598 604 #define YYNNTS 241 599 605 /* YYNRULES -- Number of rules. */ 600 #define YYNRULES 75 5606 #define YYNRULES 750 601 607 /* YYNRULES -- Number of states. */ 602 #define YYNSTATES 15 79608 #define YYNSTATES 1554 603 609 604 610 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 615 621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 616 622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 617 2, 2, 2, 12 2, 2, 2, 2, 125, 119, 2,618 109, 110, 11 8, 120, 116, 121, 113, 124, 2, 2,619 2, 2, 2, 2, 2, 2, 2, 2, 1 17, 132,620 12 6, 131, 127, 130, 2, 2, 2, 2, 2, 2,623 2, 2, 2, 121, 2, 2, 2, 124, 118, 2, 624 109, 110, 117, 119, 116, 120, 113, 123, 2, 2, 625 2, 2, 2, 2, 2, 2, 2, 2, 130, 132, 626 125, 131, 126, 129, 2, 2, 2, 2, 2, 2, 621 627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 622 628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 623 2, 111, 2, 112, 12 8, 2, 2, 2, 2, 2,629 2, 111, 2, 112, 127, 2, 2, 2, 2, 2, 624 630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 625 631 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 626 2, 2, 2, 114, 12 9, 115, 123, 2, 2, 2,632 2, 2, 2, 114, 128, 115, 122, 2, 2, 2, 627 633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 628 634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 659 665 17, 19, 21, 23, 25, 27, 29, 31, 34, 36, 660 666 38, 42, 46, 48, 55, 60, 64, 72, 76, 84, 661 87, 90, 98, 103, 105, 109, 110, 112, 11 6, 124,662 1 34, 136, 140, 142, 146, 154, 158, 166, 168, 170,663 1 72, 175, 178, 181, 184, 187, 190, 195, 202, 204,664 20 9, 214, 217, 222, 224, 226, 228, 230, 232, 234,665 2 36, 238, 243, 248, 250, 254, 258, 262, 264, 268,666 2 72, 274, 278, 282, 284, 288, 292, 296, 300, 302,667 306, 310, 312, 316, 318, 322, 324, 328, 330, 334,668 3 36, 340, 342, 348, 353, 359, 361, 363, 367, 371,669 3 74, 375, 377, 380, 386, 393, 401, 403, 407, 409,670 411, 413, 415, 417, 419, 421, 423, 425, 427, 429,671 4 33, 434, 436, 438, 440, 442, 444, 446, 448, 450,672 4 52, 459, 464, 467, 475, 477, 481, 483, 486, 488,673 4 91, 493, 496, 499, 505, 513, 519, 529, 535, 545,674 5 47, 551, 553, 555, 559, 563, 566, 568, 571, 574,675 5 75, 577, 580, 584, 585, 587, 590, 594, 598, 603,676 604, 606, 608, 611, 617, 625, 632, 639, 644, 648,677 6 53, 656, 660, 663, 667, 671, 675, 679, 685, 689,678 6 93, 698, 700, 706, 713, 719, 726, 736, 747, 757,679 7 68, 771, 773, 776, 779, 782, 784, 791, 800, 811,680 8 24, 839, 840, 842, 843, 845, 847, 851, 856, 864,681 8 65, 867, 871, 873, 877, 879, 881, 883, 887, 889,682 8 91, 893, 897, 898, 900, 904, 909, 911, 915, 917,683 9 19, 923, 927, 931, 935, 939, 942, 946, 953, 957,684 9 61, 966, 968, 971, 974, 978, 984, 993, 1001, 1009,685 101 5, 1025, 1028, 1031, 1037, 1041, 1047, 1052, 1056, 1061,686 106 6, 1074, 1078, 1082, 1086, 1090, 1095, 1102, 1104, 1106,687 1 108, 1110, 1112, 1114, 1116, 1118, 1119, 1121, 1123, 1126,688 11 28, 1130, 1132, 1134, 1136, 1138, 1140, 1141, 1147, 1149,689 11 52, 1156, 1158, 1161, 1163, 1165, 1167, 1169, 1171, 1173,690 11 75, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193,691 11 95, 1197, 1199, 1201, 1203, 1205, 1207, 1210, 1213, 1217,692 12 21, 1223, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253,693 12 58, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283,694 12 86, 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311,695 13 18, 1326, 1329, 1332, 1335, 1336, 1339, 1342, 1346, 1349,696 13 53, 1355, 1358, 1362, 1365, 1368, 1373, 1374, 1376, 1379,697 13 82, 1384, 1385, 1387, 1390, 1393, 1399, 1402, 1403, 1411,698 1 414, 1419, 1420, 1423, 1424, 1426, 1428, 1430, 1436, 1442,699 144 8, 1450, 1456, 1462, 1472, 1474, 1480, 1481, 1483, 1485,700 14 91, 1493, 1495, 1501, 1507, 1509, 1513, 1517, 1522, 1524,701 15 26, 1528, 1530, 1533, 1535, 1539, 1543, 1545, 1548, 1550,702 15 54, 1556, 1558, 1560, 1562, 1564, 1566, 1568, 1570, 1572,703 15 74, 1576, 1579, 1581, 1583, 1585, 1588, 1589, 1592, 1595,704 15 97, 1602, 1603, 1605, 1608, 1612, 1617, 1620, 1623, 1625,705 162 8, 1630, 1633, 1639, 1645, 1653, 1660, 1662, 1665, 1668,706 16 72, 1674, 1677, 1680, 1685, 1688, 1693, 1694, 1699, 1702,707 1 704, 1706, 1708, 1709, 1712, 1718, 1724, 1738, 1740, 1742,708 17 46, 1750, 1753, 1757, 1761, 1764, 1769, 1771, 1778, 1788,709 178 9, 1801, 1803, 1807, 1811, 1815, 1817, 1819, 1825, 1828,710 18 34, 1835, 1837, 1839, 1843, 1844, 1846, 1848, 1850, 1852,711 18 53, 1860, 1863, 1865, 1868, 1873, 1876, 1880, 1884, 1888,712 189 3, 1899, 1905, 1911, 1918, 1920, 1922, 1924, 1928, 1929,713 19 35, 1936, 1938, 1940, 1943, 1950, 1952, 1956, 1957, 1959,714 19 64, 1966, 1968, 1970, 1972, 1975, 1977, 1980, 1983, 1985,715 198 9, 1992, 1996, 2000, 2003, 2008, 2013, 2017, 2026, 2030,716 203 3, 2035, 2038, 2045, 2054, 2058, 2061, 2065, 2069, 2074,717 20 79, 2083, 2085, 2087, 2089, 2094, 2101, 2105, 2108, 2112,718 21 16, 2121, 2126, 2130, 2133, 2135, 2138, 2141, 2143, 2147,719 21 50, 2154, 2158, 2161, 2166, 2171, 2175, 2182, 2191, 2195,720 21 98, 2200, 2203, 2206, 2209, 2213, 2217, 2220, 2225, 2230,721 223 4, 2241, 2250, 2254, 2257, 2259, 2262, 2265, 2267, 2269,722 22 72, 2276, 2280, 2283, 2288, 2295, 2304, 2306, 2309, 2312,723 23 14, 2317, 2320, 2324, 2328, 2330, 2335, 2340, 2344, 2350,724 235 9, 2363, 2366, 2370, 2372, 2378, 2384, 2391, 2398, 2400,725 2 403, 2406, 2408, 2411, 2414, 2418, 2422, 2424, 2429, 2434,726 243 8, 2444, 2453, 2457, 2459, 2462, 2464, 2467, 2474, 2480,727 248 7, 2495, 2503, 2505, 2508, 2511, 2513, 2516, 2519, 2523,728 252 7, 2529, 2534, 2539, 2543, 2552, 2556, 2558, 2560, 2563,729 25 65, 2567, 2570, 2574, 2577, 2581, 2584, 2588, 2592, 2595,730 2 600, 2604, 2607, 2611, 2614, 2619, 2623, 2626, 2633, 2640,731 26 47, 2655, 2657, 2660, 2662, 2664, 2666, 2669, 2673, 2676,732 26 80, 2683, 2687, 2691, 2696, 2699, 2703, 2708, 2711, 2717,733 27 23, 2730, 2737, 2738, 2740, 2741667 87, 90, 98, 103, 105, 109, 110, 112, 114, 118, 668 120, 124, 132, 136, 144, 146, 148, 150, 153, 156, 669 159, 162, 165, 168, 173, 176, 181, 188, 190, 195, 670 200, 202, 204, 206, 208, 210, 212, 214, 219, 224, 671 226, 230, 234, 238, 240, 244, 248, 250, 254, 258, 672 260, 264, 268, 272, 276, 278, 282, 286, 288, 292, 673 294, 298, 300, 304, 306, 310, 312, 316, 318, 324, 674 329, 335, 337, 339, 343, 346, 347, 349, 351, 353, 675 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, 676 380, 387, 395, 397, 401, 403, 407, 408, 410, 412, 677 414, 416, 418, 420, 422, 424, 426, 433, 438, 441, 678 449, 451, 455, 457, 460, 462, 465, 467, 470, 473, 679 479, 487, 493, 503, 509, 519, 521, 525, 527, 529, 680 533, 537, 540, 542, 545, 548, 549, 551, 554, 558, 681 559, 561, 564, 568, 572, 577, 578, 580, 582, 585, 682 591, 599, 606, 613, 618, 622, 627, 630, 634, 637, 683 641, 645, 649, 653, 659, 663, 667, 672, 674, 680, 684 687, 693, 700, 710, 721, 731, 742, 745, 747, 750, 685 753, 756, 758, 765, 774, 785, 798, 813, 814, 816, 686 817, 819, 821, 825, 830, 838, 839, 841, 845, 847, 687 851, 853, 855, 857, 861, 863, 865, 867, 871, 872, 688 874, 878, 883, 885, 889, 891, 893, 897, 901, 905, 689 909, 913, 916, 920, 927, 931, 935, 940, 942, 945, 690 948, 952, 958, 967, 975, 983, 989, 999, 1002, 1005, 691 1011, 1015, 1021, 1026, 1030, 1035, 1040, 1048, 1052, 1056, 692 1060, 1064, 1069, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 693 1090, 1092, 1093, 1095, 1097, 1100, 1102, 1104, 1106, 1108, 694 1110, 1112, 1114, 1115, 1121, 1123, 1126, 1130, 1132, 1135, 695 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 696 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 697 1177, 1179, 1181, 1184, 1187, 1191, 1195, 1197, 1201, 1203, 698 1206, 1209, 1212, 1217, 1222, 1227, 1232, 1234, 1237, 1240, 699 1244, 1246, 1249, 1252, 1254, 1257, 1260, 1264, 1266, 1269, 700 1272, 1274, 1276, 1281, 1284, 1285, 1292, 1300, 1303, 1306, 701 1309, 1310, 1313, 1316, 1320, 1323, 1327, 1329, 1332, 1336, 702 1339, 1342, 1347, 1348, 1350, 1353, 1356, 1358, 1359, 1361, 703 1364, 1367, 1373, 1376, 1377, 1385, 1388, 1393, 1394, 1397, 704 1398, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436, 705 1446, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475, 706 1481, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507, 707 1509, 1513, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534, 708 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1553, 1555, 709 1557, 1559, 1562, 1563, 1566, 1569, 1571, 1576, 1577, 1579, 710 1582, 1586, 1591, 1594, 1597, 1599, 1602, 1605, 1611, 1617, 711 1625, 1632, 1634, 1637, 1640, 1644, 1646, 1649, 1652, 1657, 712 1660, 1665, 1666, 1671, 1674, 1676, 1678, 1680, 1681, 1684, 713 1690, 1696, 1710, 1712, 1714, 1718, 1722, 1725, 1729, 1733, 714 1736, 1741, 1743, 1750, 1760, 1761, 1773, 1775, 1779, 1783, 715 1787, 1789, 1791, 1797, 1800, 1806, 1807, 1809, 1811, 1815, 716 1816, 1818, 1820, 1822, 1824, 1825, 1832, 1835, 1837, 1840, 717 1845, 1848, 1852, 1856, 1860, 1865, 1871, 1877, 1883, 1890, 718 1892, 1894, 1896, 1900, 1901, 1907, 1908, 1910, 1912, 1915, 719 1922, 1924, 1928, 1929, 1931, 1936, 1938, 1940, 1942, 1944, 720 1947, 1949, 1952, 1955, 1957, 1961, 1964, 1968, 1972, 1975, 721 1980, 1985, 1989, 1998, 2002, 2005, 2007, 2010, 2017, 2026, 722 2030, 2033, 2037, 2041, 2046, 2051, 2055, 2057, 2059, 2061, 723 2066, 2073, 2077, 2080, 2084, 2088, 2093, 2098, 2102, 2105, 724 2107, 2110, 2113, 2115, 2119, 2122, 2126, 2130, 2133, 2138, 725 2143, 2147, 2154, 2163, 2167, 2170, 2172, 2175, 2178, 2181, 726 2185, 2189, 2192, 2197, 2202, 2206, 2213, 2222, 2226, 2229, 727 2231, 2234, 2237, 2239, 2241, 2244, 2248, 2252, 2255, 2260, 728 2267, 2276, 2278, 2281, 2284, 2286, 2289, 2292, 2296, 2300, 729 2302, 2307, 2312, 2316, 2322, 2331, 2335, 2338, 2342, 2344, 730 2350, 2356, 2363, 2370, 2372, 2375, 2378, 2380, 2383, 2386, 731 2390, 2394, 2396, 2401, 2406, 2410, 2416, 2425, 2429, 2431, 732 2434, 2436, 2439, 2446, 2452, 2459, 2467, 2475, 2477, 2480, 733 2483, 2485, 2488, 2491, 2495, 2499, 2501, 2506, 2511, 2515, 734 2524, 2528, 2530, 2532, 2535, 2537, 2539, 2542, 2546, 2549, 735 2553, 2556, 2560, 2564, 2567, 2572, 2576, 2579, 2583, 2586, 736 2591, 2595, 2598, 2605, 2612, 2619, 2627, 2629, 2632, 2634, 737 2636, 2638, 2641, 2645, 2648, 2652, 2655, 2659, 2663, 2668, 738 2671, 2675, 2680, 2683, 2689, 2695, 2702, 2709, 2710, 2712, 739 2713 734 740 }; 735 741 … … 748 754 109, 275, 110, 114, 279, 372, 115, -1, 143, 114, 749 755 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 750 164, -1, 139, 117, 164, -1, 111, 134, 164, 135, 751 112, 117, 164, -1, 111, 134, 164, 116, 167, 135, 752 112, 117, 164, -1, 147, -1, 146, 116, 147, -1, 753 139, -1, 139, 113, 147, -1, 139, 113, 111, 134, 754 146, 135, 112, -1, 139, 85, 147, -1, 139, 85, 755 111, 134, 146, 135, 112, -1, 143, -1, 136, -1, 756 141, -1, 40, 151, -1, 149, 151, -1, 150, 151, 757 -1, 86, 148, -1, 87, 148, -1, 37, 148, -1, 758 37, 109, 275, 110, -1, 38, 109, 275, 116, 139, 759 110, -1, 76, -1, 76, 109, 276, 110, -1, 76, 760 109, 145, 110, -1, 66, 148, -1, 66, 109, 275, 761 110, -1, 118, -1, 119, -1, 94, -1, 120, -1, 762 121, -1, 122, -1, 123, -1, 148, -1, 109, 275, 763 110, 151, -1, 109, 275, 110, 166, -1, 151, -1, 764 152, 118, 151, -1, 152, 124, 151, -1, 152, 125, 765 151, -1, 152, -1, 153, 120, 152, -1, 153, 121, 766 152, -1, 153, -1, 154, 88, 153, -1, 154, 89, 767 153, -1, 154, -1, 155, 126, 154, -1, 155, 127, 768 154, -1, 155, 90, 154, -1, 155, 91, 154, -1, 769 155, -1, 156, 92, 155, -1, 156, 93, 155, -1, 770 156, -1, 157, 119, 156, -1, 157, -1, 158, 128, 771 157, -1, 158, -1, 159, 129, 158, -1, 159, -1, 772 160, 94, 159, -1, 160, -1, 161, 95, 160, -1, 773 161, -1, 161, 130, 169, 117, 162, -1, 161, 130, 774 117, 162, -1, 161, 130, 169, 117, 166, -1, 162, 775 -1, 162, -1, 148, 131, 164, -1, 148, 168, 164, 776 -1, 166, 373, -1, -1, 164, -1, 111, 112, -1, 777 111, 134, 164, 135, 112, -1, 111, 134, 116, 167, 778 135, 112, -1, 111, 134, 164, 116, 167, 135, 112, 779 -1, 165, -1, 167, 116, 165, -1, 97, -1, 98, 780 -1, 99, -1, 100, -1, 101, -1, 102, -1, 103, 781 -1, 104, -1, 105, -1, 106, -1, 164, -1, 169, 782 116, 164, -1, -1, 169, -1, 172, -1, 173, -1, 783 177, -1, 178, -1, 190, -1, 192, -1, 193, -1, 784 198, -1, 128, 143, 114, 144, 115, 132, -1, 72, 785 117, 312, 171, -1, 114, 115, -1, 114, 134, 134, 786 209, 174, 135, 115, -1, 175, -1, 174, 134, 175, 787 -1, 212, -1, 40, 212, -1, 308, -1, 171, 135, 788 -1, 171, -1, 176, 171, -1, 170, 132, -1, 41, 789 109, 169, 110, 171, -1, 41, 109, 169, 110, 171, 790 42, 171, -1, 43, 109, 169, 110, 183, -1, 43, 791 109, 169, 110, 114, 134, 205, 184, 115, -1, 53, 792 109, 169, 110, 183, -1, 53, 109, 169, 110, 114, 793 134, 205, 186, 115, -1, 163, -1, 163, 96, 163, 794 -1, 310, -1, 179, -1, 180, 116, 179, -1, 44, 795 180, 117, -1, 45, 117, -1, 181, -1, 182, 181, 796 -1, 182, 171, -1, -1, 185, -1, 182, 176, -1, 797 185, 182, 176, -1, -1, 187, -1, 182, 189, -1, 798 182, 176, 188, -1, 187, 182, 189, -1, 187, 182, 799 176, 188, -1, -1, 189, -1, 56, -1, 56, 132, 800 -1, 47, 109, 169, 110, 171, -1, 46, 171, 47, 801 109, 169, 110, 132, -1, 48, 109, 134, 191, 110, 802 171, -1, 170, 135, 132, 170, 132, 170, -1, 212, 803 170, 132, 170, -1, 51, 72, 132, -1, 51, 118, 804 169, 132, -1, 50, 132, -1, 50, 72, 132, -1, 805 49, 132, -1, 49, 72, 132, -1, 52, 170, 132, 806 -1, 61, 165, 132, -1, 62, 165, 132, -1, 62, 807 165, 63, 164, 132, -1, 57, 173, 194, -1, 57, 808 173, 196, -1, 57, 173, 194, 196, -1, 195, -1, 809 58, 109, 96, 110, 173, -1, 195, 58, 109, 96, 810 110, 173, -1, 59, 109, 96, 110, 173, -1, 195, 811 59, 109, 96, 110, 173, -1, 58, 109, 134, 134, 812 197, 135, 110, 173, 135, -1, 195, 58, 109, 134, 813 134, 197, 135, 110, 173, 135, -1, 59, 109, 134, 814 134, 197, 135, 110, 173, 135, -1, 195, 59, 109, 815 134, 134, 197, 135, 110, 173, 135, -1, 60, 173, 816 -1, 225, -1, 225, 309, -1, 225, 357, -1, 366, 817 139, -1, 366, -1, 64, 199, 109, 141, 110, 132, 818 -1, 64, 199, 109, 141, 117, 200, 110, 132, -1, 819 64, 199, 109, 141, 117, 200, 117, 200, 110, 132, 820 -1, 64, 199, 109, 141, 117, 200, 117, 200, 117, 821 203, 110, 132, -1, 64, 199, 51, 109, 141, 117, 822 117, 200, 117, 203, 117, 204, 110, 132, -1, -1, 823 11, -1, -1, 201, -1, 202, -1, 201, 116, 202, 824 -1, 141, 109, 163, 110, -1, 111, 163, 112, 141, 825 109, 163, 110, -1, -1, 141, -1, 203, 116, 141, 826 -1, 139, -1, 204, 116, 139, -1, 135, -1, 206, 827 -1, 212, -1, 206, 134, 212, -1, 135, -1, 208, 828 -1, 222, -1, 208, 134, 222, -1, -1, 210, -1, 829 29, 211, 132, -1, 210, 29, 211, 132, -1, 274, 830 -1, 211, 116, 274, -1, 213, -1, 222, -1, 214, 831 135, 132, -1, 219, 135, 132, -1, 216, 135, 132, 832 -1, 293, 135, 132, -1, 296, 135, 132, -1, 215, 833 277, -1, 231, 215, 277, -1, 214, 135, 116, 134, 834 272, 277, -1, 367, 272, 311, -1, 370, 272, 311, 835 -1, 227, 370, 272, 311, -1, 217, -1, 227, 217, 836 -1, 231, 217, -1, 231, 227, 217, -1, 216, 135, 837 116, 134, 272, -1, 111, 112, 272, 109, 134, 260, 838 135, 110, -1, 370, 272, 109, 134, 260, 135, 110, 839 -1, 218, 272, 109, 134, 260, 135, 110, -1, 111, 840 134, 262, 135, 112, -1, 111, 134, 262, 135, 116, 841 134, 263, 135, 112, -1, 3, 215, -1, 3, 217, 842 -1, 219, 135, 116, 134, 139, -1, 3, 225, 309, 843 -1, 220, 135, 116, 134, 309, -1, 227, 3, 225, 844 309, -1, 225, 3, 309, -1, 225, 3, 227, 309, 845 -1, 3, 139, 131, 164, -1, 221, 135, 116, 134, 846 139, 131, 164, -1, 223, 135, 132, -1, 220, 135, 847 132, -1, 221, 135, 132, -1, 240, 135, 132, -1, 848 224, 309, 311, 277, -1, 223, 116, 312, 309, 311, 849 277, -1, 236, -1, 240, -1, 242, -1, 283, -1, 850 237, -1, 241, -1, 243, -1, 284, -1, -1, 227, 851 -1, 228, -1, 227, 228, -1, 229, -1, 314, -1, 852 10, -1, 12, -1, 11, -1, 14, -1, 67, -1, 853 -1, 13, 109, 230, 286, 110, -1, 232, -1, 227, 854 232, -1, 231, 227, 232, -1, 233, -1, 232, 233, 855 -1, 234, -1, 5, -1, 7, -1, 4, -1, 6, 856 -1, 8, -1, 9, -1, 69, -1, 71, -1, 16, 857 -1, 21, -1, 20, -1, 18, -1, 19, -1, 17, 858 -1, 22, -1, 23, -1, 15, -1, 25, -1, 26, 859 -1, 27, -1, 24, -1, 237, -1, 231, 237, -1, 860 236, 233, -1, 236, 233, 227, -1, 236, 233, 237, 861 -1, 238, -1, 226, 239, 226, -1, 235, -1, 227, 862 235, -1, 238, 228, -1, 238, 235, -1, 28, 109, 863 276, 110, -1, 28, 109, 169, 110, -1, 78, 109, 864 276, 110, -1, 78, 109, 169, 110, -1, 241, -1, 865 231, 241, -1, 240, 233, -1, 240, 233, 227, -1, 866 244, -1, 227, 244, -1, 241, 228, -1, 243, -1, 867 231, 243, -1, 242, 233, -1, 242, 233, 227, -1, 868 74, -1, 227, 74, -1, 243, 228, -1, 245, -1, 869 256, -1, 247, 114, 248, 115, -1, 247, 274, -1, 870 -1, 247, 274, 246, 114, 248, 115, -1, 247, 109, 871 292, 110, 114, 248, 115, -1, 247, 285, -1, 31, 872 312, -1, 32, 312, -1, -1, 248, 249, -1, 250, 873 132, -1, 40, 250, 132, -1, 251, 132, -1, 40, 874 251, 132, -1, 366, -1, 366, 274, -1, 250, 116, 875 274, -1, 250, 116, -1, 225, 252, -1, 251, 116, 876 312, 252, -1, -1, 254, -1, 318, 253, -1, 331, 877 253, -1, 357, -1, -1, 254, -1, 117, 163, -1, 878 30, 312, -1, 255, 114, 258, 372, 115, -1, 255, 879 274, -1, -1, 255, 274, 257, 114, 258, 372, 115, 880 -1, 274, 259, -1, 258, 116, 274, 259, -1, -1, 881 131, 163, -1, -1, 261, -1, 263, -1, 262, -1, 882 262, 135, 116, 134, 263, -1, 263, 135, 116, 134, 883 96, -1, 262, 135, 116, 134, 96, -1, 267, -1, 884 263, 135, 116, 134, 267, -1, 262, 135, 116, 134, 885 267, -1, 262, 135, 116, 134, 263, 135, 116, 134, 886 267, -1, 268, -1, 263, 135, 116, 134, 268, -1, 887 -1, 265, -1, 266, -1, 266, 135, 116, 134, 96, 888 -1, 270, -1, 269, -1, 266, 135, 116, 134, 270, 889 -1, 266, 135, 116, 134, 269, -1, 269, -1, 362, 890 272, 373, -1, 370, 272, 373, -1, 227, 370, 272, 891 373, -1, 217, -1, 270, -1, 362, -1, 370, -1, 892 227, 370, -1, 371, -1, 224, 336, 373, -1, 224, 893 340, 373, -1, 224, -1, 224, 351, -1, 139, -1, 894 271, 116, 139, -1, 137, -1, 74, -1, 75, -1, 895 138, -1, 74, -1, 75, -1, 139, -1, 74, -1, 896 75, -1, 366, -1, 225, -1, 225, 357, -1, 366, 897 -1, 371, -1, 225, -1, 225, 345, -1, -1, 131, 898 278, -1, 107, 278, -1, 164, -1, 114, 279, 372, 899 115, -1, -1, 278, -1, 280, 278, -1, 279, 116, 900 278, -1, 279, 116, 280, 278, -1, 281, 117, -1, 901 274, 117, -1, 282, -1, 281, 282, -1, 80, -1, 902 113, 274, -1, 111, 134, 164, 135, 112, -1, 111, 903 134, 310, 135, 112, -1, 111, 134, 163, 96, 163, 904 135, 112, -1, 113, 111, 134, 146, 135, 112, -1, 905 284, -1, 231, 284, -1, 283, 233, -1, 283, 233, 906 227, -1, 285, -1, 227, 285, -1, 284, 228, -1, 907 75, 109, 292, 110, -1, 287, 373, -1, 286, 116, 908 287, 373, -1, -1, 289, 274, 288, 290, -1, 225, 909 336, -1, 33, -1, 35, -1, 34, -1, -1, 290, 910 291, -1, 129, 274, 109, 292, 110, -1, 129, 114, 911 134, 298, 115, -1, 129, 109, 134, 286, 135, 110, 912 114, 134, 298, 115, 109, 292, 110, -1, 276, -1, 913 164, -1, 292, 116, 276, -1, 292, 116, 164, -1, 914 33, 294, -1, 232, 33, 294, -1, 293, 116, 294, 915 -1, 295, 290, -1, 295, 290, 131, 276, -1, 274, 916 -1, 273, 109, 134, 286, 135, 110, -1, 36, 274, 917 109, 134, 286, 135, 110, 114, 115, -1, -1, 36, 918 274, 109, 134, 286, 135, 110, 114, 297, 298, 115, 919 -1, 299, -1, 298, 134, 299, -1, 300, 135, 132, 920 -1, 301, 135, 132, -1, 215, -1, 217, -1, 300, 921 135, 116, 134, 272, -1, 225, 309, -1, 301, 135, 922 116, 134, 309, -1, -1, 303, -1, 305, -1, 303, 923 134, 305, -1, -1, 303, -1, 212, -1, 307, -1, 924 198, -1, -1, 5, 82, 306, 114, 304, 115, -1, 925 40, 305, -1, 308, -1, 323, 173, -1, 327, 134, 926 207, 173, -1, 216, 173, -1, 224, 323, 173, -1, 927 227, 323, 173, -1, 231, 323, 173, -1, 231, 227, 928 323, 173, -1, 224, 327, 134, 207, 173, -1, 227, 929 327, 134, 207, 173, -1, 231, 327, 134, 207, 173, 930 -1, 231, 227, 327, 134, 207, 173, -1, 318, -1, 931 331, -1, 323, -1, 163, 123, 163, -1, -1, 64, 932 109, 141, 110, 312, -1, -1, 313, -1, 314, -1, 933 313, 314, -1, 39, 109, 109, 315, 110, 110, -1, 934 316, -1, 315, 116, 316, -1, -1, 317, -1, 317, 935 109, 170, 110, -1, 272, -1, 234, -1, 235, -1, 936 228, -1, 319, 312, -1, 320, -1, 321, 312, -1, 937 322, 312, -1, 137, -1, 109, 319, 110, -1, 149, 938 318, -1, 149, 227, 318, -1, 109, 320, 110, -1, 939 319, 349, -1, 109, 320, 110, 349, -1, 109, 321, 940 110, 350, -1, 109, 321, 110, -1, 109, 320, 110, 941 109, 134, 264, 135, 110, -1, 109, 322, 110, -1, 942 324, 312, -1, 325, -1, 326, 312, -1, 319, 109, 943 134, 264, 135, 110, -1, 109, 325, 110, 109, 134, 944 264, 135, 110, -1, 109, 324, 110, -1, 149, 323, 945 -1, 149, 227, 323, -1, 109, 325, 110, -1, 109, 946 325, 110, 349, -1, 109, 326, 110, 350, -1, 109, 947 326, 110, -1, 328, -1, 329, -1, 330, -1, 319, 948 109, 271, 110, -1, 109, 329, 110, 109, 271, 110, 949 -1, 109, 328, 110, -1, 149, 327, -1, 149, 227, 950 327, -1, 109, 329, 110, -1, 109, 329, 110, 349, 951 -1, 109, 330, 110, 350, -1, 109, 330, 110, -1, 952 332, 312, -1, 333, -1, 334, 312, -1, 335, 312, 953 -1, 341, -1, 109, 332, 110, -1, 149, 331, -1, 954 149, 227, 331, -1, 109, 333, 110, -1, 332, 349, 955 -1, 109, 333, 110, 349, -1, 109, 334, 110, 350, 956 -1, 109, 334, 110, -1, 332, 109, 134, 264, 135, 957 110, -1, 109, 333, 110, 109, 134, 264, 135, 110, 958 -1, 109, 335, 110, -1, 319, 312, -1, 337, -1, 959 338, 312, -1, 339, 312, -1, 149, 336, -1, 149, 960 227, 336, -1, 109, 337, 110, -1, 319, 355, -1, 961 109, 337, 110, 349, -1, 109, 338, 110, 350, -1, 962 109, 338, 110, -1, 319, 109, 134, 264, 135, 110, 963 -1, 109, 337, 110, 109, 134, 264, 135, 110, -1, 964 109, 339, 110, -1, 341, 312, -1, 342, -1, 343, 965 312, -1, 344, 312, -1, 74, -1, 75, -1, 149, 966 340, -1, 149, 227, 340, -1, 109, 342, 110, -1, 967 341, 355, -1, 109, 342, 110, 355, -1, 341, 109, 968 134, 264, 135, 110, -1, 109, 342, 110, 109, 134, 969 264, 135, 110, -1, 346, -1, 347, 312, -1, 348, 970 312, -1, 149, -1, 149, 227, -1, 149, 345, -1, 971 149, 227, 345, -1, 109, 346, 110, -1, 349, -1, 972 109, 346, 110, 349, -1, 109, 347, 110, 350, -1, 973 109, 347, 110, -1, 109, 134, 264, 135, 110, -1, 974 109, 346, 110, 109, 134, 264, 135, 110, -1, 109, 975 348, 110, -1, 111, 112, -1, 111, 112, 350, -1, 976 350, -1, 111, 134, 164, 135, 112, -1, 111, 134, 977 118, 135, 112, -1, 350, 111, 134, 164, 135, 112, 978 -1, 350, 111, 134, 118, 135, 112, -1, 352, -1, 979 353, 312, -1, 354, 312, -1, 149, -1, 149, 227, 980 -1, 149, 351, -1, 149, 227, 351, -1, 109, 352, 981 110, -1, 355, -1, 109, 352, 110, 355, -1, 109, 982 353, 110, 350, -1, 109, 353, 110, -1, 109, 134, 983 264, 135, 110, -1, 109, 352, 110, 109, 134, 264, 984 135, 110, -1, 109, 354, 110, -1, 356, -1, 356, 985 350, -1, 350, -1, 111, 112, -1, 111, 134, 227, 986 118, 135, 112, -1, 111, 134, 227, 135, 112, -1, 987 111, 134, 227, 164, 135, 112, -1, 111, 134, 7, 988 226, 164, 135, 112, -1, 111, 134, 227, 7, 164, 989 135, 112, -1, 358, -1, 359, 312, -1, 360, 312, 990 -1, 149, -1, 149, 227, -1, 149, 357, -1, 149, 991 227, 357, -1, 109, 358, 110, -1, 349, -1, 109, 992 358, 110, 349, -1, 109, 359, 110, 350, -1, 109, 993 359, 110, -1, 109, 358, 110, 109, 134, 264, 135, 994 110, -1, 109, 360, 110, -1, 362, -1, 370, -1, 995 227, 370, -1, 363, -1, 364, -1, 149, 225, -1, 996 227, 149, 225, -1, 149, 371, -1, 227, 149, 371, 997 -1, 149, 361, -1, 227, 149, 361, -1, 111, 112, 998 225, -1, 365, 225, -1, 111, 112, 350, 225, -1, 999 365, 350, 225, -1, 350, 225, -1, 111, 112, 363, 1000 -1, 365, 363, -1, 111, 112, 350, 363, -1, 365, 1001 350, 363, -1, 350, 363, -1, 111, 134, 227, 118, 1002 135, 112, -1, 111, 134, 227, 164, 135, 112, -1, 1003 111, 134, 231, 164, 135, 112, -1, 111, 134, 231, 1004 227, 164, 135, 112, -1, 370, -1, 227, 370, -1, 1005 367, -1, 368, -1, 369, -1, 149, 225, -1, 227, 1006 149, 225, -1, 149, 371, -1, 227, 149, 371, -1, 1007 149, 366, -1, 227, 149, 366, -1, 111, 112, 225, 1008 -1, 111, 112, 350, 225, -1, 350, 225, -1, 111, 1009 112, 368, -1, 111, 112, 350, 368, -1, 350, 368, 1010 -1, 111, 134, 263, 135, 112, -1, 111, 112, 109, 1011 260, 110, -1, 370, 109, 134, 260, 135, 110, -1, 1012 218, 109, 134, 260, 135, 110, -1, -1, 116, -1, 1013 -1, 131, 164, -1 756 164, -1, 147, -1, 146, 116, 147, -1, 139, -1, 757 139, 113, 147, -1, 139, 113, 111, 134, 146, 135, 758 112, -1, 139, 85, 147, -1, 139, 85, 111, 134, 759 146, 135, 112, -1, 143, -1, 136, -1, 141, -1, 760 40, 151, -1, 149, 151, -1, 150, 151, -1, 86, 761 148, -1, 87, 148, -1, 37, 148, -1, 37, 109, 762 275, 110, -1, 66, 148, -1, 66, 109, 275, 110, 763 -1, 38, 109, 275, 116, 139, 110, -1, 76, -1, 764 76, 109, 145, 110, -1, 76, 109, 276, 110, -1, 765 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 766 122, -1, 148, -1, 109, 275, 110, 151, -1, 109, 767 275, 110, 167, -1, 151, -1, 152, 117, 151, -1, 768 152, 123, 151, -1, 152, 124, 151, -1, 152, -1, 769 153, 119, 152, -1, 153, 120, 152, -1, 153, -1, 770 154, 88, 153, -1, 154, 89, 153, -1, 154, -1, 771 155, 125, 154, -1, 155, 126, 154, -1, 155, 90, 772 154, -1, 155, 91, 154, -1, 155, -1, 156, 92, 773 155, -1, 156, 93, 155, -1, 156, -1, 157, 118, 774 156, -1, 157, -1, 158, 127, 157, -1, 158, -1, 775 159, 128, 158, -1, 159, -1, 160, 94, 159, -1, 776 160, -1, 161, 95, 160, -1, 161, -1, 161, 129, 777 169, 130, 162, -1, 161, 129, 130, 162, -1, 161, 778 129, 169, 130, 167, -1, 162, -1, 162, -1, 148, 779 166, 164, -1, 167, 373, -1, -1, 164, -1, 131, 780 -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, 781 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, 782 -1, 111, 112, -1, 111, 134, 164, 135, 112, -1, 783 111, 134, 116, 168, 135, 112, -1, 111, 134, 164, 784 116, 168, 135, 112, -1, 165, -1, 168, 116, 165, 785 -1, 164, -1, 169, 116, 164, -1, -1, 169, -1, 786 172, -1, 173, -1, 177, -1, 178, -1, 190, -1, 787 192, -1, 193, -1, 198, -1, 127, 143, 114, 144, 788 115, 132, -1, 72, 130, 312, 171, -1, 114, 115, 789 -1, 114, 134, 134, 209, 174, 135, 115, -1, 175, 790 -1, 174, 134, 175, -1, 212, -1, 40, 212, -1, 791 308, -1, 171, 135, -1, 171, -1, 176, 171, -1, 792 170, 132, -1, 41, 109, 169, 110, 171, -1, 41, 793 109, 169, 110, 171, 42, 171, -1, 43, 109, 169, 794 110, 183, -1, 43, 109, 169, 110, 114, 134, 205, 795 184, 115, -1, 53, 109, 169, 110, 183, -1, 53, 796 109, 169, 110, 114, 134, 205, 186, 115, -1, 163, 797 -1, 163, 96, 163, -1, 310, -1, 179, -1, 180, 798 116, 179, -1, 44, 180, 130, -1, 45, 130, -1, 799 181, -1, 182, 181, -1, 182, 171, -1, -1, 185, 800 -1, 182, 176, -1, 185, 182, 176, -1, -1, 187, 801 -1, 182, 189, -1, 182, 176, 188, -1, 187, 182, 802 189, -1, 187, 182, 176, 188, -1, -1, 189, -1, 803 56, -1, 56, 132, -1, 47, 109, 169, 110, 171, 804 -1, 46, 171, 47, 109, 169, 110, 132, -1, 48, 805 109, 134, 191, 110, 171, -1, 170, 135, 132, 170, 806 132, 170, -1, 212, 170, 132, 170, -1, 51, 72, 807 132, -1, 51, 117, 169, 132, -1, 50, 132, -1, 808 50, 72, 132, -1, 49, 132, -1, 49, 72, 132, 809 -1, 52, 170, 132, -1, 61, 165, 132, -1, 62, 810 165, 132, -1, 62, 165, 63, 164, 132, -1, 57, 811 173, 194, -1, 57, 173, 196, -1, 57, 173, 194, 812 196, -1, 195, -1, 58, 109, 96, 110, 173, -1, 813 195, 58, 109, 96, 110, 173, -1, 59, 109, 96, 814 110, 173, -1, 195, 59, 109, 96, 110, 173, -1, 815 58, 109, 134, 134, 197, 135, 110, 173, 135, -1, 816 195, 58, 109, 134, 134, 197, 135, 110, 173, 135, 817 -1, 59, 109, 134, 134, 197, 135, 110, 173, 135, 818 -1, 195, 59, 109, 134, 134, 197, 135, 110, 173, 819 135, -1, 60, 173, -1, 225, -1, 225, 309, -1, 820 225, 357, -1, 366, 139, -1, 366, -1, 64, 199, 821 109, 141, 110, 132, -1, 64, 199, 109, 141, 130, 822 200, 110, 132, -1, 64, 199, 109, 141, 130, 200, 823 130, 200, 110, 132, -1, 64, 199, 109, 141, 130, 824 200, 130, 200, 130, 203, 110, 132, -1, 64, 199, 825 51, 109, 141, 130, 130, 200, 130, 203, 130, 204, 826 110, 132, -1, -1, 11, -1, -1, 201, -1, 202, 827 -1, 201, 116, 202, -1, 141, 109, 163, 110, -1, 828 111, 163, 112, 141, 109, 163, 110, -1, -1, 141, 829 -1, 203, 116, 141, -1, 139, -1, 204, 116, 139, 830 -1, 135, -1, 206, -1, 212, -1, 206, 134, 212, 831 -1, 135, -1, 208, -1, 222, -1, 208, 134, 222, 832 -1, -1, 210, -1, 29, 211, 132, -1, 210, 29, 833 211, 132, -1, 274, -1, 211, 116, 274, -1, 213, 834 -1, 222, -1, 214, 135, 132, -1, 219, 135, 132, 835 -1, 216, 135, 132, -1, 293, 135, 132, -1, 296, 836 135, 132, -1, 215, 277, -1, 231, 215, 277, -1, 837 214, 135, 116, 134, 272, 277, -1, 367, 272, 311, 838 -1, 370, 272, 311, -1, 227, 370, 272, 311, -1, 839 217, -1, 227, 217, -1, 231, 217, -1, 231, 227, 840 217, -1, 216, 135, 116, 134, 272, -1, 111, 112, 841 272, 109, 134, 260, 135, 110, -1, 370, 272, 109, 842 134, 260, 135, 110, -1, 218, 272, 109, 134, 260, 843 135, 110, -1, 111, 134, 262, 135, 112, -1, 111, 844 134, 262, 135, 116, 134, 263, 135, 112, -1, 3, 845 215, -1, 3, 217, -1, 219, 135, 116, 134, 139, 846 -1, 3, 225, 309, -1, 220, 135, 116, 134, 309, 847 -1, 227, 3, 225, 309, -1, 225, 3, 309, -1, 848 225, 3, 227, 309, -1, 3, 139, 131, 164, -1, 849 221, 135, 116, 134, 139, 131, 164, -1, 223, 135, 850 132, -1, 220, 135, 132, -1, 221, 135, 132, -1, 851 240, 135, 132, -1, 224, 309, 311, 277, -1, 223, 852 116, 312, 309, 311, 277, -1, 236, -1, 240, -1, 853 242, -1, 283, -1, 237, -1, 241, -1, 243, -1, 854 284, -1, -1, 227, -1, 228, -1, 227, 228, -1, 855 229, -1, 314, -1, 10, -1, 12, -1, 11, -1, 856 14, -1, 67, -1, -1, 13, 109, 230, 286, 110, 857 -1, 232, -1, 227, 232, -1, 231, 227, 232, -1, 858 233, -1, 232, 233, -1, 234, -1, 5, -1, 7, 859 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69, 860 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18, 861 -1, 19, -1, 17, -1, 22, -1, 23, -1, 15, 862 -1, 25, -1, 26, -1, 27, -1, 24, -1, 237, 863 -1, 231, 237, -1, 236, 233, -1, 236, 233, 227, 864 -1, 236, 233, 237, -1, 238, -1, 226, 239, 226, 865 -1, 235, -1, 227, 235, -1, 238, 228, -1, 238, 866 235, -1, 28, 109, 276, 110, -1, 28, 109, 169, 867 110, -1, 78, 109, 276, 110, -1, 78, 109, 169, 868 110, -1, 241, -1, 231, 241, -1, 240, 233, -1, 869 240, 233, 227, -1, 244, -1, 227, 244, -1, 241, 870 228, -1, 243, -1, 231, 243, -1, 242, 233, -1, 871 242, 233, 227, -1, 74, -1, 227, 74, -1, 243, 872 228, -1, 245, -1, 256, -1, 247, 114, 248, 115, 873 -1, 247, 274, -1, -1, 247, 274, 246, 114, 248, 874 115, -1, 247, 109, 292, 110, 114, 248, 115, -1, 875 247, 285, -1, 31, 312, -1, 32, 312, -1, -1, 876 248, 249, -1, 250, 132, -1, 40, 250, 132, -1, 877 251, 132, -1, 40, 251, 132, -1, 366, -1, 366, 878 274, -1, 250, 116, 274, -1, 250, 116, -1, 225, 879 252, -1, 251, 116, 312, 252, -1, -1, 254, -1, 880 318, 253, -1, 331, 253, -1, 357, -1, -1, 254, 881 -1, 130, 163, -1, 30, 312, -1, 255, 114, 258, 882 372, 115, -1, 255, 274, -1, -1, 255, 274, 257, 883 114, 258, 372, 115, -1, 274, 259, -1, 258, 116, 884 274, 259, -1, -1, 131, 163, -1, -1, 261, -1, 885 263, -1, 262, -1, 262, 135, 116, 134, 263, -1, 886 263, 135, 116, 134, 96, -1, 262, 135, 116, 134, 887 96, -1, 267, -1, 263, 135, 116, 134, 267, -1, 888 262, 135, 116, 134, 267, -1, 262, 135, 116, 134, 889 263, 135, 116, 134, 267, -1, 268, -1, 263, 135, 890 116, 134, 268, -1, -1, 265, -1, 266, -1, 266, 891 135, 116, 134, 96, -1, 270, -1, 269, -1, 266, 892 135, 116, 134, 270, -1, 266, 135, 116, 134, 269, 893 -1, 269, -1, 362, 272, 373, -1, 370, 272, 373, 894 -1, 227, 370, 272, 373, -1, 217, -1, 270, -1, 895 362, -1, 370, -1, 227, 370, -1, 371, -1, 224, 896 336, 373, -1, 224, 340, 373, -1, 224, -1, 224, 897 351, -1, 139, -1, 271, 116, 139, -1, 137, -1, 898 74, -1, 75, -1, 138, -1, 74, -1, 75, -1, 899 139, -1, 74, -1, 75, -1, 366, -1, 225, -1, 900 225, 357, -1, 366, -1, 371, -1, 225, -1, 225, 901 345, -1, -1, 131, 278, -1, 107, 278, -1, 164, 902 -1, 114, 279, 372, 115, -1, -1, 278, -1, 280, 903 278, -1, 279, 116, 278, -1, 279, 116, 280, 278, 904 -1, 281, 130, -1, 274, 130, -1, 282, -1, 281, 905 282, -1, 113, 274, -1, 111, 134, 164, 135, 112, 906 -1, 111, 134, 310, 135, 112, -1, 111, 134, 163, 907 96, 163, 135, 112, -1, 113, 111, 134, 146, 135, 908 112, -1, 284, -1, 231, 284, -1, 283, 233, -1, 909 283, 233, 227, -1, 285, -1, 227, 285, -1, 284, 910 228, -1, 75, 109, 292, 110, -1, 287, 373, -1, 911 286, 116, 287, 373, -1, -1, 289, 274, 288, 290, 912 -1, 225, 336, -1, 33, -1, 35, -1, 34, -1, 913 -1, 290, 291, -1, 128, 274, 109, 292, 110, -1, 914 128, 114, 134, 298, 115, -1, 128, 109, 134, 286, 915 135, 110, 114, 134, 298, 115, 109, 292, 110, -1, 916 276, -1, 164, -1, 292, 116, 276, -1, 292, 116, 917 164, -1, 33, 294, -1, 232, 33, 294, -1, 293, 918 116, 294, -1, 295, 290, -1, 295, 290, 131, 276, 919 -1, 274, -1, 273, 109, 134, 286, 135, 110, -1, 920 36, 274, 109, 134, 286, 135, 110, 114, 115, -1, 921 -1, 36, 274, 109, 134, 286, 135, 110, 114, 297, 922 298, 115, -1, 299, -1, 298, 134, 299, -1, 300, 923 135, 132, -1, 301, 135, 132, -1, 215, -1, 217, 924 -1, 300, 135, 116, 134, 272, -1, 225, 309, -1, 925 301, 135, 116, 134, 309, -1, -1, 303, -1, 305, 926 -1, 303, 134, 305, -1, -1, 303, -1, 212, -1, 927 307, -1, 198, -1, -1, 5, 82, 306, 114, 304, 928 115, -1, 40, 305, -1, 308, -1, 323, 173, -1, 929 327, 134, 207, 173, -1, 216, 173, -1, 224, 323, 930 173, -1, 227, 323, 173, -1, 231, 323, 173, -1, 931 231, 227, 323, 173, -1, 224, 327, 134, 207, 173, 932 -1, 227, 327, 134, 207, 173, -1, 231, 327, 134, 933 207, 173, -1, 231, 227, 327, 134, 207, 173, -1, 934 318, -1, 331, -1, 323, -1, 163, 122, 163, -1, 935 -1, 64, 109, 141, 110, 312, -1, -1, 313, -1, 936 314, -1, 313, 314, -1, 39, 109, 109, 315, 110, 937 110, -1, 316, -1, 315, 116, 316, -1, -1, 317, 938 -1, 317, 109, 170, 110, -1, 272, -1, 234, -1, 939 235, -1, 228, -1, 319, 312, -1, 320, -1, 321, 940 312, -1, 322, 312, -1, 137, -1, 109, 319, 110, 941 -1, 149, 318, -1, 149, 227, 318, -1, 109, 320, 942 110, -1, 319, 349, -1, 109, 320, 110, 349, -1, 943 109, 321, 110, 350, -1, 109, 321, 110, -1, 109, 944 320, 110, 109, 134, 264, 135, 110, -1, 109, 322, 945 110, -1, 324, 312, -1, 325, -1, 326, 312, -1, 946 319, 109, 134, 264, 135, 110, -1, 109, 325, 110, 947 109, 134, 264, 135, 110, -1, 109, 324, 110, -1, 948 149, 323, -1, 149, 227, 323, -1, 109, 325, 110, 949 -1, 109, 325, 110, 349, -1, 109, 326, 110, 350, 950 -1, 109, 326, 110, -1, 328, -1, 329, -1, 330, 951 -1, 319, 109, 271, 110, -1, 109, 329, 110, 109, 952 271, 110, -1, 109, 328, 110, -1, 149, 327, -1, 953 149, 227, 327, -1, 109, 329, 110, -1, 109, 329, 954 110, 349, -1, 109, 330, 110, 350, -1, 109, 330, 955 110, -1, 332, 312, -1, 333, -1, 334, 312, -1, 956 335, 312, -1, 341, -1, 109, 332, 110, -1, 149, 957 331, -1, 149, 227, 331, -1, 109, 333, 110, -1, 958 332, 349, -1, 109, 333, 110, 349, -1, 109, 334, 959 110, 350, -1, 109, 334, 110, -1, 332, 109, 134, 960 264, 135, 110, -1, 109, 333, 110, 109, 134, 264, 961 135, 110, -1, 109, 335, 110, -1, 319, 312, -1, 962 337, -1, 338, 312, -1, 339, 312, -1, 149, 336, 963 -1, 149, 227, 336, -1, 109, 337, 110, -1, 319, 964 355, -1, 109, 337, 110, 349, -1, 109, 338, 110, 965 350, -1, 109, 338, 110, -1, 319, 109, 134, 264, 966 135, 110, -1, 109, 337, 110, 109, 134, 264, 135, 967 110, -1, 109, 339, 110, -1, 341, 312, -1, 342, 968 -1, 343, 312, -1, 344, 312, -1, 74, -1, 75, 969 -1, 149, 340, -1, 149, 227, 340, -1, 109, 342, 970 110, -1, 341, 355, -1, 109, 342, 110, 355, -1, 971 341, 109, 134, 264, 135, 110, -1, 109, 342, 110, 972 109, 134, 264, 135, 110, -1, 346, -1, 347, 312, 973 -1, 348, 312, -1, 149, -1, 149, 227, -1, 149, 974 345, -1, 149, 227, 345, -1, 109, 346, 110, -1, 975 349, -1, 109, 346, 110, 349, -1, 109, 347, 110, 976 350, -1, 109, 347, 110, -1, 109, 134, 264, 135, 977 110, -1, 109, 346, 110, 109, 134, 264, 135, 110, 978 -1, 109, 348, 110, -1, 111, 112, -1, 111, 112, 979 350, -1, 350, -1, 111, 134, 164, 135, 112, -1, 980 111, 134, 117, 135, 112, -1, 350, 111, 134, 164, 981 135, 112, -1, 350, 111, 134, 117, 135, 112, -1, 982 352, -1, 353, 312, -1, 354, 312, -1, 149, -1, 983 149, 227, -1, 149, 351, -1, 149, 227, 351, -1, 984 109, 352, 110, -1, 355, -1, 109, 352, 110, 355, 985 -1, 109, 353, 110, 350, -1, 109, 353, 110, -1, 986 109, 134, 264, 135, 110, -1, 109, 352, 110, 109, 987 134, 264, 135, 110, -1, 109, 354, 110, -1, 356, 988 -1, 356, 350, -1, 350, -1, 111, 112, -1, 111, 989 134, 227, 117, 135, 112, -1, 111, 134, 227, 135, 990 112, -1, 111, 134, 227, 164, 135, 112, -1, 111, 991 134, 7, 226, 164, 135, 112, -1, 111, 134, 227, 992 7, 164, 135, 112, -1, 358, -1, 359, 312, -1, 993 360, 312, -1, 149, -1, 149, 227, -1, 149, 357, 994 -1, 149, 227, 357, -1, 109, 358, 110, -1, 349, 995 -1, 109, 358, 110, 349, -1, 109, 359, 110, 350, 996 -1, 109, 359, 110, -1, 109, 358, 110, 109, 134, 997 264, 135, 110, -1, 109, 360, 110, -1, 362, -1, 998 370, -1, 227, 370, -1, 363, -1, 364, -1, 149, 999 225, -1, 227, 149, 225, -1, 149, 371, -1, 227, 1000 149, 371, -1, 149, 361, -1, 227, 149, 361, -1, 1001 111, 112, 225, -1, 365, 225, -1, 111, 112, 350, 1002 225, -1, 365, 350, 225, -1, 350, 225, -1, 111, 1003 112, 363, -1, 365, 363, -1, 111, 112, 350, 363, 1004 -1, 365, 350, 363, -1, 350, 363, -1, 111, 134, 1005 227, 117, 135, 112, -1, 111, 134, 227, 164, 135, 1006 112, -1, 111, 134, 231, 164, 135, 112, -1, 111, 1007 134, 231, 227, 164, 135, 112, -1, 370, -1, 227, 1008 370, -1, 367, -1, 368, -1, 369, -1, 149, 225, 1009 -1, 227, 149, 225, -1, 149, 371, -1, 227, 149, 1010 371, -1, 149, 366, -1, 227, 149, 366, -1, 111, 1011 112, 225, -1, 111, 112, 350, 225, -1, 350, 225, 1012 -1, 111, 112, 368, -1, 111, 112, 350, 368, -1, 1013 350, 368, -1, 111, 134, 263, 135, 112, -1, 111, 1014 112, 109, 260, 110, -1, 370, 109, 134, 260, 135, 1015 110, -1, 218, 109, 134, 260, 135, 110, -1, -1, 1016 116, -1, -1, 131, 164, -1 1014 1017 }; 1015 1018 … … 1017 1020 static const yytype_uint16 yyrline[] = 1018 1021 { 1019 0, 29 2, 292, 298, 307, 308, 309, 313, 314, 315,1020 3 19, 320, 324, 325, 329, 330, 334, 335, 341, 343,1021 3 45, 347, 352, 353, 359, 363, 365, 366, 368, 369,1022 3 71, 373, 375, 383, 384, 390, 391, 392, 397, 399,1023 4 04, 405, 409, 413, 415, 417, 419, 424, 427, 429,1024 4 31, 436, 439, 441, 443, 445, 447, 449, 451, 453,1025 4 55, 457, 459, 466, 467, 469, 473, 474, 475, 476,1026 480, 481, 483, 488, 489, 491, 493, 498, 499, 501,1027 5 06, 507, 509, 514, 515, 517, 519, 521, 526, 527,1028 5 29, 534, 535, 540, 541, 546, 547, 552, 553, 558,1029 5 59, 564, 565, 568, 570, 575, 580, 581, 583, 585,1030 591, 592, 598, 600, 602, 604, 609, 610, 615, 616,1031 6 17, 618, 619, 620, 621, 622, 623, 624, 628, 629,1032 6 36, 637, 643, 644, 645, 646, 647, 648, 649, 650,1033 6 51, 661, 668, 670, 680, 681, 686, 688, 694, 696,1034 7 00, 701, 706, 711, 714, 716, 718, 728, 730, 741,1035 7 42, 744, 748, 750, 754, 755, 760, 761, 765, 770,1036 771, 775, 777, 783, 784, 788, 790, 792, 794, 800,1037 8 01, 805, 807, 812, 814, 816, 821, 823, 828, 830,1038 8 34, 837, 841, 844, 848, 850, 854, 856, 863, 865,1039 8 67, 876, 878, 880, 882, 884, 889, 891, 893, 895,1040 9 00, 913, 914, 919, 921, 926, 930, 932, 934, 936,1041 9 38, 944, 945, 951, 952, 956, 957, 962, 964, 970,1042 971, 973, 978, 980, 987, 989, 993, 994, 999, 1001,1043 10 05, 1006, 1010, 1012, 1016, 1017, 1021, 1022, 1026, 1027,1044 10 42, 1043, 1044, 1045, 1046, 1050, 1055, 1062, 1072, 1077,1045 1 082, 1090, 1095, 1100, 1105, 1110, 1118, 1140, 1145, 1152,1046 11 54, 1161, 1166, 1171, 1182, 1187, 1192, 1197, 1202, 1211,1047 12 16, 1224, 1225, 1226, 1227, 1233, 1238, 1246, 1247, 1248,1048 12 49, 1253, 1254, 1255, 1256, 1261, 1262, 1271, 1272, 1277,1049 1 278, 1283, 1285, 1287, 1289, 1291, 1294, 1293, 1305, 1306,1050 13 08, 1318, 1319, 1324, 1328, 1330, 1332, 1334, 1336, 1338,1051 13 40, 1342, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361,1052 13 63, 1365, 1367, 1369, 1371, 1377, 1378, 1380, 1382, 1384,1053 1 389, 1390, 1396, 1397, 1399, 1401, 1406, 1408, 1410, 1412,1054 14 17, 1418, 1420, 1422, 1427, 1428, 1430, 1435, 1436, 1438,1055 14 40, 1445, 1447, 1449, 1454, 1455, 1459, 1461, 1467, 1466,1056 1 470, 1472, 1477, 1479, 1485, 1486, 1491, 1492, 1494, 1495,1057 15 04, 1505, 1507, 1509, 1514, 1516, 1522, 1523, 1525, 1528,1058 15 31, 1536, 1537, 1542, 1547, 1551, 1553, 1559, 1558, 1565,1059 1 567, 1573, 1574, 1582, 1583, 1587, 1588, 1589, 1591, 1593,1060 16 00, 1601, 1603, 1605, 1610, 1611, 1617, 1618, 1622, 1623,1061 16 28, 1629, 1630, 1632, 1640, 1641, 1643, 1646, 1648, 1652,1062 16 53, 1654, 1656, 1658, 1662, 1667, 1675, 1676, 1685, 1687,1063 1 692, 1693, 1694, 1698, 1699, 1700, 1704, 1705, 1706, 1710,1064 17 11, 1712, 1717, 1718, 1719, 1720, 1726, 1727, 1729, 1734,1065 17 35, 1740, 1741, 1742, 1743, 1744, 1759, 1760, 1765, 1766,1066 17 74, 1776, 1778, 1781, 1783, 1785, 1808, 1809, 1811, 1813,1067 18 18, 1819, 1821, 1826, 1831, 1832, 1838, 1837, 1841, 1845,1068 18 47, 1849, 1855, 1856, 1861, 1866, 1868, 1873, 1875, 1876,1069 1 878, 1883, 1885, 1887, 1892, 1894, 1899, 1904, 1912, 1918,1070 19 17, 1931, 1932, 1937, 1938, 1942, 1947, 1952, 1960, 1965,1071 1976, 1977, 1988, 1989, 1995, 1996, 2000, 2001, 2002, 2005,1072 20 04, 2015, 2024, 2030, 2036, 2045, 2051, 2057, 2063, 2069,1073 2 077, 2083, 2091, 2097, 2106, 2107, 2108, 2112, 2116, 2118,1074 21 23, 2124, 2128, 2129, 2134, 2140, 2141, 2144, 2146, 2147,1075 2 151, 2152, 2153, 2154, 2188, 2190, 2191, 2193, 2198, 2203,1076 22 08, 2210, 2212, 2217, 2219, 2221, 2223, 2228, 2230, 2239,1077 22 41, 2242, 2247, 2249, 2251, 2256, 2258, 2260, 2265, 2267,1078 22 69, 2278, 2279, 2280, 2284, 2286, 2288, 2293, 2295, 2297,1079 23 02, 2304, 2306, 2321, 2323, 2324, 2326, 2331, 2332, 2337,1080 23 39, 2341, 2346, 2348, 2350, 2352, 2357, 2359, 2361, 2371,1081 23 73, 2374, 2376, 2381, 2383, 2385, 2390, 2392, 2394, 2396,1082 24 01, 2403, 2405, 2436, 2438, 2439, 2441, 2446, 2451, 2459,1083 24 61, 2463, 2468, 2470, 2475, 2477, 2491, 2492, 2494, 2499,1084 25 01, 2503, 2505, 2507, 2512, 2513, 2515, 2517, 2522, 2524,1085 25 26, 2532, 2534, 2536, 2540, 2542, 2544, 2546, 2560, 2561,1086 25 63, 2568, 2570, 2572, 2574, 2576, 2581, 2582, 2584, 2586,1087 2 591, 2593, 2595, 2601, 2602, 2604, 2613, 2616, 2618, 2621,1088 26 23, 2625, 2638, 2639, 2641, 2646, 2648, 2650, 2652, 2654,1089 26 59, 2660, 2662, 2664, 2669, 2671, 2679, 2680, 2681, 2686,1090 2 687, 2691, 2693, 2695, 2697, 2699, 2701, 2708, 2710, 2712,1091 27 14, 2716, 2718, 2720, 2722, 2724, 2726, 2731, 2733, 2735,1092 27 40, 2766, 2767, 2769, 2773, 2774, 2778, 2780, 2782, 2784,1093 2 786, 2788, 2795, 2797, 2799, 2801, 2803, 2805, 2810, 2815,1094 28 17, 2819, 2837, 2839, 2844, 28451022 0, 299, 299, 305, 314, 315, 316, 320, 321, 322, 1023 326, 327, 331, 332, 336, 337, 341, 342, 353, 355, 1024 357, 359, 364, 365, 371, 375, 377, 378, 380, 381, 1025 383, 385, 387, 396, 397, 403, 404, 408, 409, 413, 1026 417, 419, 421, 423, 428, 431, 433, 435, 440, 453, 1027 455, 457, 459, 461, 463, 465, 467, 469, 471, 473, 1028 480, 481, 487, 488, 489, 490, 494, 495, 497, 502, 1029 503, 505, 507, 512, 513, 515, 520, 521, 523, 528, 1030 529, 531, 533, 535, 540, 541, 543, 548, 549, 554, 1031 555, 560, 561, 566, 567, 572, 573, 578, 579, 582, 1032 584, 589, 594, 595, 597, 603, 604, 608, 609, 610, 1033 611, 612, 613, 614, 615, 616, 617, 618, 624, 626, 1034 628, 630, 635, 636, 641, 642, 648, 649, 655, 656, 1035 657, 658, 659, 660, 661, 662, 663, 673, 680, 682, 1036 692, 693, 698, 700, 706, 708, 712, 713, 718, 723, 1037 727, 730, 733, 743, 746, 758, 759, 761, 765, 767, 1038 771, 772, 777, 778, 782, 787, 788, 792, 794, 800, 1039 801, 805, 807, 809, 811, 817, 818, 822, 824, 829, 1040 831, 833, 838, 840, 845, 847, 851, 854, 858, 861, 1041 865, 867, 871, 873, 880, 882, 884, 893, 895, 897, 1042 899, 901, 906, 908, 910, 912, 917, 930, 931, 936, 1043 938, 943, 947, 949, 951, 953, 955, 961, 962, 968, 1044 969, 973, 974, 979, 981, 987, 988, 990, 995, 997, 1045 1004, 1006, 1010, 1011, 1016, 1018, 1022, 1023, 1027, 1029, 1046 1033, 1034, 1038, 1039, 1043, 1044, 1059, 1060, 1061, 1062, 1047 1063, 1067, 1072, 1079, 1089, 1094, 1099, 1107, 1112, 1117, 1048 1122, 1127, 1135, 1157, 1162, 1169, 1171, 1178, 1183, 1188, 1049 1199, 1204, 1209, 1214, 1219, 1228, 1233, 1241, 1242, 1243, 1050 1244, 1250, 1255, 1263, 1264, 1265, 1266, 1270, 1271, 1272, 1051 1273, 1278, 1279, 1288, 1289, 1294, 1295, 1300, 1302, 1304, 1052 1306, 1308, 1311, 1310, 1322, 1323, 1325, 1335, 1336, 1341, 1053 1345, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1364, 1366, 1054 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1055 1388, 1394, 1395, 1397, 1399, 1401, 1406, 1407, 1413, 1414, 1056 1416, 1418, 1423, 1425, 1427, 1429, 1434, 1435, 1437, 1439, 1057 1444, 1445, 1447, 1452, 1453, 1455, 1457, 1462, 1464, 1466, 1058 1471, 1472, 1476, 1478, 1484, 1483, 1487, 1489, 1494, 1496, 1059 1502, 1503, 1508, 1509, 1511, 1512, 1521, 1522, 1524, 1526, 1060 1531, 1533, 1539, 1540, 1542, 1545, 1548, 1553, 1554, 1559, 1061 1564, 1568, 1570, 1576, 1575, 1582, 1584, 1590, 1591, 1599, 1062 1600, 1604, 1605, 1606, 1608, 1610, 1617, 1618, 1620, 1622, 1063 1627, 1628, 1634, 1635, 1639, 1640, 1645, 1646, 1647, 1649, 1064 1657, 1658, 1660, 1663, 1665, 1669, 1670, 1671, 1673, 1675, 1065 1679, 1684, 1692, 1693, 1702, 1704, 1709, 1710, 1711, 1715, 1066 1716, 1717, 1721, 1722, 1723, 1727, 1728, 1729, 1734, 1735, 1067 1736, 1737, 1743, 1744, 1746, 1751, 1752, 1757, 1758, 1759, 1068 1760, 1761, 1776, 1777, 1782, 1783, 1789, 1791, 1794, 1796, 1069 1798, 1821, 1822, 1824, 1826, 1831, 1832, 1834, 1839, 1844, 1070 1845, 1851, 1850, 1854, 1858, 1860, 1862, 1868, 1869, 1874, 1071 1879, 1881, 1886, 1888, 1889, 1891, 1896, 1898, 1900, 1905, 1072 1907, 1912, 1917, 1925, 1931, 1930, 1944, 1945, 1950, 1951, 1073 1955, 1960, 1965, 1973, 1978, 1989, 1990, 2001, 2002, 2008, 1074 2009, 2013, 2014, 2015, 2018, 2017, 2028, 2037, 2043, 2049, 1075 2058, 2064, 2070, 2076, 2082, 2090, 2096, 2104, 2110, 2119, 1076 2120, 2121, 2125, 2129, 2131, 2136, 2137, 2141, 2142, 2147, 1077 2153, 2154, 2157, 2159, 2160, 2164, 2165, 2166, 2167, 2201, 1078 2203, 2204, 2206, 2211, 2216, 2221, 2223, 2225, 2230, 2232, 1079 2234, 2236, 2241, 2243, 2252, 2254, 2255, 2260, 2262, 2264, 1080 2269, 2271, 2273, 2278, 2280, 2282, 2291, 2292, 2293, 2297, 1081 2299, 2301, 2306, 2308, 2310, 2315, 2317, 2319, 2334, 2336, 1082 2337, 2339, 2344, 2345, 2350, 2352, 2354, 2359, 2361, 2363, 1083 2365, 2370, 2372, 2374, 2384, 2386, 2387, 2389, 2394, 2396, 1084 2398, 2403, 2405, 2407, 2409, 2414, 2416, 2418, 2449, 2451, 1085 2452, 2454, 2459, 2464, 2472, 2474, 2476, 2481, 2483, 2488, 1086 2490, 2504, 2505, 2507, 2512, 2514, 2516, 2518, 2520, 2525, 1087 2526, 2528, 2530, 2535, 2537, 2539, 2545, 2547, 2549, 2553, 1088 2555, 2557, 2559, 2573, 2574, 2576, 2581, 2583, 2585, 2587, 1089 2589, 2594, 2595, 2597, 2599, 2604, 2606, 2608, 2614, 2615, 1090 2617, 2626, 2629, 2631, 2634, 2636, 2638, 2651, 2652, 2654, 1091 2659, 2661, 2663, 2665, 2667, 2672, 2673, 2675, 2677, 2682, 1092 2684, 2692, 2693, 2694, 2699, 2700, 2704, 2706, 2708, 2710, 1093 2712, 2714, 2721, 2723, 2725, 2727, 2729, 2731, 2733, 2735, 1094 2737, 2739, 2744, 2746, 2748, 2753, 2779, 2780, 2782, 2786, 1095 2787, 2791, 2793, 2795, 2797, 2799, 2801, 2808, 2810, 2812, 1096 2814, 2816, 2818, 2823, 2828, 2830, 2832, 2850, 2852, 2857, 1097 2858 1095 1098 }; 1096 1099 #endif … … 1118 1121 "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign", 1119 1122 "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", 1120 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "' :'", "'*'",1121 "' &'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'",1122 "' |'", "'?'", "'='", "';'", "$accept", "push", "pop", "constant",1123 "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", 1124 "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", 1125 "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant", 1123 1126 "identifier", "no_01_identifier", "no_attr_identifier", "zero_one", 1124 1127 "string_literal_list", "primary_expression", "postfix_expression", … … 1130 1133 "logical_AND_expression", "logical_OR_expression", 1131 1134 "conditional_expression", "constant_expression", "assignment_expression", 1132 "assignment_expression_opt", " tuple", "tuple_expression_list",1133 " assignment_operator", "comma_expression", "comma_expression_opt",1135 "assignment_expression_opt", "assignment_operator", "tuple", 1136 "tuple_expression_list", "comma_expression", "comma_expression_opt", 1134 1137 "statement", "labeled_statement", "compound_statement", 1135 1138 "block_item_list", "block_item", "statement_list", … … 1225 1228 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1226 1229 355, 356, 357, 358, 359, 360, 361, 362, 363, 40, 1227 41, 91, 93, 46, 123, 125, 44, 58, 42, 38,1228 4 3, 45, 33, 126, 47, 37, 60, 62, 94, 124,1229 63, 61, 591230 41, 91, 93, 46, 123, 125, 44, 42, 38, 43, 1231 45, 33, 126, 47, 37, 60, 62, 94, 124, 63, 1232 58, 61, 59 1230 1233 }; 1231 1234 # endif … … 1237 1240 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 1238 1241 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 1239 143, 143, 143, 144, 144, 145, 145, 14 5, 145, 145,1240 14 6, 146, 147, 147, 147, 147, 147, 148, 148, 148,1242 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 1243 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 1241 1244 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1242 14 8, 148, 148, 149, 149, 149, 150, 150, 150, 150,1243 15 1, 151, 151, 152, 152, 152, 152, 153, 153, 153,1244 15 4, 154, 154, 155, 155, 155, 155, 155, 156, 156,1245 15 6, 157, 157, 158, 158, 159, 159, 160, 160, 161,1246 16 1, 162, 162, 162, 162, 163, 164, 164, 164, 164,1247 16 5, 165, 166, 166, 166, 166, 167, 167, 168, 168,1248 16 8, 168, 168, 168, 168, 168, 168, 168, 169, 169,1249 17 0, 170, 171, 171, 171, 171, 171, 171, 171, 171,1250 17 1, 172, 173, 173, 174, 174, 175, 175, 175, 175,1251 17 6, 176, 177, 178, 178, 178, 178, 178, 178, 179,1252 1 79, 179, 180, 180, 181, 181, 182, 182, 183, 184,1253 18 4, 185, 185, 186, 186, 187, 187, 187, 187, 188,1254 1 88, 189, 189, 190, 190, 190, 191, 191, 192, 192,1255 192, 192, 192, 192, 19 2, 192, 192, 192, 193, 193,1256 19 3, 194, 194, 194, 194, 194, 195, 195, 195, 195,1257 19 6, 197, 197, 197, 197, 197, 198, 198, 198, 198,1258 198, 199, 199, 200, 200, 201, 201, 202, 202, 203,1259 20 3, 203, 204, 204, 205, 205, 206, 206, 207, 207,1260 2 08, 208, 209, 209, 210, 210, 211, 211, 212, 212,1261 213, 21 3, 213, 213, 213, 214, 214, 214, 215, 215,1262 21 5, 216, 216, 216, 216, 216, 217, 217, 217, 218,1263 2 18, 219, 219, 219, 220, 220, 220, 220, 220, 221,1264 22 1, 222, 222, 222, 222, 223, 223, 224, 224, 224,1265 22 4, 225, 225, 225, 225, 226, 226, 227, 227, 228,1266 22 8, 229, 229, 229, 229, 229, 230, 229, 231, 231,1267 23 1, 232, 232, 233, 234, 234, 234, 234, 234, 234,1268 23 4, 234, 235, 235, 235, 235, 235, 235, 235, 235,1269 235, 23 5, 235, 235, 235, 236, 236, 236, 236, 236,1270 23 7, 237, 238, 238, 238, 238, 239, 239, 239, 239,1271 24 0, 240, 240, 240, 241, 241, 241, 242, 242, 242,1272 24 2, 243, 243, 243, 244, 244, 245, 245, 246, 245,1273 24 5, 245, 247, 247, 248, 248, 249, 249, 249, 249,1274 25 0, 250, 250, 250, 251, 251, 252, 252, 252, 252,1275 25 2, 253, 253, 254, 255, 256, 256, 257, 256, 258,1276 2 58, 259, 259, 260, 260, 261, 261, 261, 261, 261,1277 26 2, 262, 262, 262, 263, 263, 264, 264, 265, 265,1278 26 6, 266, 266, 266, 267, 267, 267, 267, 267, 268,1279 26 8, 268, 268, 268, 269, 269, 270, 270, 271, 271,1280 27 2, 272, 272, 273, 273, 273, 274, 274, 274, 275,1281 27 5, 275, 276, 276, 276, 276, 277, 277, 277, 278,1282 27 8, 279, 279, 279, 279, 279, 280, 280, 281, 281,1283 282, 28 2, 282, 282, 282, 282, 283, 283, 283, 283,1284 28 4, 284, 284, 285, 286, 286, 288, 287, 287, 289,1285 2 89, 289, 290, 290, 291, 291, 291, 292, 292, 292,1286 29 2, 293, 293, 293, 294, 294, 295, 295, 296, 297,1287 296, 298, 298, 299, 299, 300, 300, 300, 301, 301,1288 30 2, 302, 303, 303, 304, 304, 305, 305, 305, 306,1289 30 5, 305, 307, 307, 307, 308, 308, 308, 308, 308,1290 30 8, 308, 308, 308, 309, 309, 309, 310, 311, 311,1291 31 2, 312, 313, 313, 314, 315, 315, 316, 316, 316,1292 31 7, 317, 317, 317, 318, 318, 318, 318, 319, 319,1293 32 0, 320, 320, 321, 321, 321, 321, 322, 322, 323,1294 32 3, 323, 324, 324, 324, 325, 325, 325, 326, 326,1295 32 6, 327, 327, 327, 328, 328, 328, 329, 329, 329,1296 33 0, 330, 330, 331, 331, 331, 331, 332, 332, 333,1297 33 3, 333, 334, 334, 334, 334, 335, 335, 335, 336,1298 33 6, 336, 336, 337, 337, 337, 338, 338, 338, 338,1299 3 39, 339, 339, 340, 340, 340, 340, 341, 341, 342,1300 34 2, 342, 343, 343, 344, 344, 345, 345, 345, 346,1301 34 6, 346, 346, 346, 347, 347, 347, 347, 348, 348,1302 3 48, 349, 349, 349, 350, 350, 350, 350, 351, 351,1303 35 1, 352, 352, 352, 352, 352, 353, 353, 353, 353,1304 35 4, 354, 354, 355, 355, 355, 356, 356, 356, 356,1305 35 6, 356, 357, 357, 357, 358, 358, 358, 358, 358,1306 3 59, 359, 359, 359, 360, 360, 361, 361, 361, 362,1307 36 2, 363, 363, 363, 363, 363, 363, 364, 364, 364,1308 364, 364, 36 4, 364, 364, 364, 364, 365, 365, 365,1309 36 5, 366, 366, 366, 367, 367, 368, 368, 368, 368,1310 36 8, 368, 369, 369, 369, 369, 369, 369, 370, 371,1311 37 1, 371, 372, 372, 373, 3731245 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 1246 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 1247 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 1248 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 1249 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 1250 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 1251 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 1252 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 1253 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 1254 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 1255 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 1256 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 1257 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 1258 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 1259 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 1260 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 1261 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 1262 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1263 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 1264 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 1265 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 1266 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 1267 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 1268 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 1269 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 1270 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 1271 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1272 235, 236, 236, 236, 236, 236, 237, 237, 238, 238, 1273 238, 238, 239, 239, 239, 239, 240, 240, 240, 240, 1274 241, 241, 241, 242, 242, 242, 242, 243, 243, 243, 1275 244, 244, 245, 245, 246, 245, 245, 245, 247, 247, 1276 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 1277 251, 251, 252, 252, 252, 252, 252, 253, 253, 254, 1278 255, 256, 256, 257, 256, 258, 258, 259, 259, 260, 1279 260, 261, 261, 261, 261, 261, 262, 262, 262, 262, 1280 263, 263, 264, 264, 265, 265, 266, 266, 266, 266, 1281 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 1282 269, 269, 270, 270, 271, 271, 272, 272, 272, 273, 1283 273, 273, 274, 274, 274, 275, 275, 275, 276, 276, 1284 276, 276, 277, 277, 277, 278, 278, 279, 279, 279, 1285 279, 279, 280, 280, 281, 281, 282, 282, 282, 282, 1286 282, 283, 283, 283, 283, 284, 284, 284, 285, 286, 1287 286, 288, 287, 287, 289, 289, 289, 290, 290, 291, 1288 291, 291, 292, 292, 292, 292, 293, 293, 293, 294, 1289 294, 295, 295, 296, 297, 296, 298, 298, 299, 299, 1290 300, 300, 300, 301, 301, 302, 302, 303, 303, 304, 1291 304, 305, 305, 305, 306, 305, 305, 307, 307, 307, 1292 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, 1293 309, 309, 310, 311, 311, 312, 312, 313, 313, 314, 1294 315, 315, 316, 316, 316, 317, 317, 317, 317, 318, 1295 318, 318, 318, 319, 319, 320, 320, 320, 321, 321, 1296 321, 321, 322, 322, 323, 323, 323, 324, 324, 324, 1297 325, 325, 325, 326, 326, 326, 327, 327, 327, 328, 1298 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 1299 331, 331, 332, 332, 333, 333, 333, 334, 334, 334, 1300 334, 335, 335, 335, 336, 336, 336, 336, 337, 337, 1301 337, 338, 338, 338, 338, 339, 339, 339, 340, 340, 1302 340, 340, 341, 341, 342, 342, 342, 343, 343, 344, 1303 344, 345, 345, 345, 346, 346, 346, 346, 346, 347, 1304 347, 347, 347, 348, 348, 348, 349, 349, 349, 350, 1305 350, 350, 350, 351, 351, 351, 352, 352, 352, 352, 1306 352, 353, 353, 353, 353, 354, 354, 354, 355, 355, 1307 355, 356, 356, 356, 356, 356, 356, 357, 357, 357, 1308 358, 358, 358, 358, 358, 359, 359, 359, 359, 360, 1309 360, 361, 361, 361, 362, 362, 363, 363, 363, 363, 1310 363, 363, 364, 364, 364, 364, 364, 364, 364, 364, 1311 364, 364, 365, 365, 365, 365, 366, 366, 366, 367, 1312 367, 368, 368, 368, 368, 368, 368, 369, 369, 369, 1313 369, 369, 369, 370, 371, 371, 371, 372, 372, 373, 1314 373 1312 1315 }; 1313 1316 … … 1318 1321 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1319 1322 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 1320 2, 7, 4, 1, 3, 0, 1, 3, 7, 9, 1321 1, 3, 1, 3, 7, 3, 7, 1, 1, 1, 1322 2, 2, 2, 2, 2, 2, 4, 6, 1, 4, 1323 4, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1324 1, 4, 4, 1, 3, 3, 3, 1, 3, 3, 1325 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1326 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1327 3, 1, 5, 4, 5, 1, 1, 3, 3, 2, 1328 0, 1, 2, 5, 6, 7, 1, 3, 1, 1, 1329 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1330 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1331 6, 4, 2, 7, 1, 3, 1, 2, 1, 2, 1332 1, 2, 2, 5, 7, 5, 9, 5, 9, 1, 1333 3, 1, 1, 3, 3, 2, 1, 2, 2, 0, 1334 1, 2, 3, 0, 1, 2, 3, 3, 4, 0, 1335 1, 1, 2, 5, 7, 6, 6, 4, 3, 4, 1336 2, 3, 2, 3, 3, 3, 3, 5, 3, 3, 1337 4, 1, 5, 6, 5, 6, 9, 10, 9, 10, 1338 2, 1, 2, 2, 2, 1, 6, 8, 10, 12, 1339 14, 0, 1, 0, 1, 1, 3, 4, 7, 0, 1340 1, 3, 1, 3, 1, 1, 1, 3, 1, 1, 1341 1, 3, 0, 1, 3, 4, 1, 3, 1, 1, 1342 3, 3, 3, 3, 3, 2, 3, 6, 3, 3, 1343 4, 1, 2, 2, 3, 5, 8, 7, 7, 5, 1344 9, 2, 2, 5, 3, 5, 4, 3, 4, 4, 1345 7, 3, 3, 3, 3, 4, 6, 1, 1, 1, 1346 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1347 1, 1, 1, 1, 1, 1, 0, 5, 1, 2, 1348 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1323 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 1324 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 1325 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 1326 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1327 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1328 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1329 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 1330 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 1331 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1332 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 1333 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 1334 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 1335 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 1336 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 1337 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 1338 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 1339 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 1340 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 1341 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 1342 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 1343 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 1344 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 1345 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 1346 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 1347 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 1348 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1349 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1350 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 1349 1351 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1350 1, 1, 1, 1, 1, 1, 2, 2, 3, 3,1351 1, 3, 1, 2, 2, 2, 4, 4, 4, 4,1352 1, 2, 2, 3, 1, 2, 2, 1, 2, 2,1353 3, 1, 2, 2, 1, 1, 4, 2, 0, 6,1354 7, 2, 2, 2, 0, 2, 2, 3, 2, 3,1355 1, 2, 3, 2, 2, 4, 0, 1, 2, 2,1356 1, 0, 1, 2, 2, 5, 2, 0, 7, 2,1357 4, 0, 2, 0, 1, 1, 1, 5, 5, 5,1358 1, 5, 5, 9, 1, 5, 0, 1, 1, 5,1359 1, 1, 5, 5, 1, 3, 3, 4, 1, 1,1360 1, 1, 2, 1, 3, 3, 1, 2, 1, 3,1361 1352 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1362 1, 2, 1, 1, 1, 2, 0, 2, 2, 1, 1363 4, 0, 1, 2, 3, 4, 2, 2, 1, 2, 1364 1, 2, 5, 5, 7, 6, 1, 2, 2, 3, 1365 1, 2, 2, 4, 2, 4, 0, 4, 2, 1, 1366 1, 1, 0, 2, 5, 5, 13, 1, 1, 3, 1367 3, 2, 3, 3, 2, 4, 1, 6, 9, 0, 1368 11, 1, 3, 3, 3, 1, 1, 5, 2, 5, 1369 0, 1, 1, 3, 0, 1, 1, 1, 1, 0, 1370 6, 2, 1, 2, 4, 2, 3, 3, 3, 4, 1371 5, 5, 5, 6, 1, 1, 1, 3, 0, 5, 1372 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, 1373 1, 1, 1, 1, 2, 1, 2, 2, 1, 3, 1374 2, 3, 3, 2, 4, 4, 3, 8, 3, 2, 1375 1, 2, 6, 8, 3, 2, 3, 3, 4, 4, 1376 3, 1, 1, 1, 4, 6, 3, 2, 3, 3, 1377 4, 4, 3, 2, 1, 2, 2, 1, 3, 2, 1378 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1379 1, 2, 2, 2, 3, 3, 2, 4, 4, 3, 1380 6, 8, 3, 2, 1, 2, 2, 1, 1, 2, 1381 3, 3, 2, 4, 6, 8, 1, 2, 2, 1, 1382 2, 2, 3, 3, 1, 4, 4, 3, 5, 8, 1383 3, 2, 3, 1, 5, 5, 6, 6, 1, 2, 1384 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1385 5, 8, 3, 1, 2, 1, 2, 6, 5, 6, 1386 7, 7, 1, 2, 2, 1, 2, 2, 3, 3, 1387 1, 4, 4, 3, 8, 3, 1, 1, 2, 1, 1388 1, 2, 3, 2, 3, 2, 3, 3, 2, 4, 1389 3, 2, 3, 2, 4, 3, 2, 6, 6, 6, 1390 7, 1, 2, 1, 1, 1, 2, 3, 2, 3, 1391 2, 3, 3, 4, 2, 3, 4, 2, 5, 5, 1392 6, 6, 0, 1, 0, 2 1353 1, 1, 2, 2, 3, 3, 1, 3, 1, 2, 1354 2, 2, 4, 4, 4, 4, 1, 2, 2, 3, 1355 1, 2, 2, 1, 2, 2, 3, 1, 2, 2, 1356 1, 1, 4, 2, 0, 6, 7, 2, 2, 2, 1357 0, 2, 2, 3, 2, 3, 1, 2, 3, 2, 1358 2, 4, 0, 1, 2, 2, 1, 0, 1, 2, 1359 2, 5, 2, 0, 7, 2, 4, 0, 2, 0, 1360 1, 1, 1, 5, 5, 5, 1, 5, 5, 9, 1361 1, 5, 0, 1, 1, 5, 1, 1, 5, 5, 1362 1, 3, 3, 4, 1, 1, 1, 1, 2, 1, 1363 3, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1364 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1365 1, 2, 0, 2, 2, 1, 4, 0, 1, 2, 1366 3, 4, 2, 2, 1, 2, 2, 5, 5, 7, 1367 6, 1, 2, 2, 3, 1, 2, 2, 4, 2, 1368 4, 0, 4, 2, 1, 1, 1, 0, 2, 5, 1369 5, 13, 1, 1, 3, 3, 2, 3, 3, 2, 1370 4, 1, 6, 9, 0, 11, 1, 3, 3, 3, 1371 1, 1, 5, 2, 5, 0, 1, 1, 3, 0, 1372 1, 1, 1, 1, 0, 6, 2, 1, 2, 4, 1373 2, 3, 3, 3, 4, 5, 5, 5, 6, 1, 1374 1, 1, 3, 0, 5, 0, 1, 1, 2, 6, 1375 1, 3, 0, 1, 4, 1, 1, 1, 1, 2, 1376 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1377 4, 3, 8, 3, 2, 1, 2, 6, 8, 3, 1378 2, 3, 3, 4, 4, 3, 1, 1, 1, 4, 1379 6, 3, 2, 3, 3, 4, 4, 3, 2, 1, 1380 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1381 3, 6, 8, 3, 2, 1, 2, 2, 2, 3, 1382 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1383 2, 2, 1, 1, 2, 3, 3, 2, 4, 6, 1384 8, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1385 4, 4, 3, 5, 8, 3, 2, 3, 1, 5, 1386 5, 6, 6, 1, 2, 2, 1, 2, 2, 3, 1387 3, 1, 4, 4, 3, 5, 8, 3, 1, 2, 1388 1, 2, 6, 5, 6, 7, 7, 1, 2, 2, 1389 1, 2, 2, 3, 3, 1, 4, 4, 3, 8, 1390 3, 1, 1, 2, 1, 1, 2, 3, 2, 3, 1391 2, 3, 3, 2, 4, 3, 2, 3, 2, 4, 1392 3, 2, 6, 6, 6, 7, 1, 2, 1, 1, 1393 1, 2, 3, 2, 3, 2, 3, 3, 4, 2, 1394 3, 4, 2, 5, 5, 6, 6, 0, 1, 0, 1395 2 1393 1396 }; 1394 1397 … … 1398 1401 static const yytype_uint16 yydefact[] = 1399 1402 { 1400 29 5, 295, 316, 314, 317, 315, 318, 319, 301, 303,1401 302, 0, 304, 330, 322, 327, 325, 326, 324, 323,1402 32 8, 329, 334, 331, 332, 333, 550, 550, 550, 0,1403 0, 0, 29 5, 221, 305, 320, 321, 7, 361, 0,1404 8, 14, 15, 65, 0, 2, 63, 64, 568, 9,1405 295, 528, 526, 248, 3, 456, 3, 261, 0, 3,1406 3, 3, 249, 3, 0, 0, 0, 296, 297, 299,1407 295, 308, 311, 313, 342, 287, 335, 340, 288, 350,1408 289, 357, 354, 364, 0, 0, 365, 290, 476, 480,1409 3, 3, 0, 2, 522, 527, 532, 300, 0, 0,1410 5 50, 580, 550, 2, 591, 592, 593, 295, 0, 734,1411 735, 0, 12, 0, 13, 295, 271, 272, 0, 296,1412 2 91, 292, 293, 294, 529, 306, 394, 551, 552, 372,1413 373, 12, 447, 448, 11, 443, 446, 0, 506, 501,1414 4 92, 447, 448, 0, 0, 531, 222, 0, 295, 0,1415 0, 0, 0, 0, 0, 0, 0, 295, 295, 2,1416 0, 736, 296, 585, 597, 740, 733, 731, 738, 0,1417 0, 0, 255, 2, 0, 535, 441, 442, 440, 0,1418 0, 0, 0, 550, 0, 637, 638, 0, 0, 548,1419 54 4, 550, 565, 550, 550, 546, 2, 545, 550, 604,1420 5 50, 550, 607, 0, 0, 0, 295, 295, 314, 362,1421 2, 295, 262, 298, 309, 343, 355, 481, 0, 2,1422 0, 456, 263, 296, 336, 351, 358, 477, 0, 2,1423 0, 312, 337, 344, 345, 0, 352, 356, 359, 363,1424 448, 295, 374, 367, 371, 0, 396, 478, 482, 0,1425 0, 0, 1, 295, 2, 533, 579, 581, 295, 2,1426 744, 296, 747, 548, 548, 0, 296, 0, 0, 274,1427 5 50, 546, 2, 295, 0, 0, 295, 553, 2, 504,1428 2, 557, 0, 0, 0, 0, 0, 0, 18, 58,1429 4, 5, 6, 16, 0, 0, 295, 2, 66, 67,1430 6 8, 69, 48, 19, 49, 22, 47, 70, 295, 0,1431 73, 7 7, 80, 83, 88, 91, 93, 95, 97, 99,1432 10 1, 106, 498, 754, 454, 497, 0, 452, 453, 0,1433 5 69, 584, 587, 590, 596, 599, 602, 361, 0, 2,1434 742, 0, 295, 745, 2, 63, 295, 3, 428, 0,1435 436, 296, 295, 308, 335, 288, 350, 357, 3, 3,1436 410, 4 14, 424, 429, 476, 295, 430, 709, 710, 295,1437 4 31, 433, 295, 2, 586, 598, 732, 2, 2, 250,1438 2, 461, 0, 459, 458, 457, 142, 2, 2, 252,1439 2, 2, 251, 2, 282, 2, 283, 0, 281, 0,1440 0, 0, 0, 0, 0, 0, 0, 0, 570, 609,1441 0, 456, 2, 564, 573, 663, 566, 567, 536, 295,1442 2, 603, 612, 605, 606, 0, 277, 295, 295, 341,1443 296, 0, 296, 0, 295, 737, 741, 739, 537, 295,1444 548, 256, 264, 310, 0, 2, 538, 295, 502, 338,1445 339, 284, 353, 360, 0, 295, 0, 752, 401, 0,1446 4 79, 503, 253, 254, 523, 295, 438, 0, 295, 238,1447 0, 2, 240, 0, 296, 0, 258, 2, 259, 279,1448 0, 0, 2, 295, 548, 295, 489, 491, 490, 0,1449 0, 754, 0, 295, 0, 295, 493, 295, 563, 561,1450 5 62, 560, 0, 555, 558, 0, 0, 295, 55, 295,1451 70, 50, 295, 61, 295, 295, 53, 54, 2, 128,1452 0, 0, 450, 0, 449, 731, 112, 295, 17, 0,1453 29, 30, 35, 2, 0, 35, 118, 119, 120, 121,1454 1 22, 123, 124, 125, 126, 127, 0, 0, 51, 52,1403 291, 291, 312, 310, 313, 311, 314, 315, 297, 299, 1404 298, 0, 300, 326, 318, 323, 321, 322, 320, 319, 1405 324, 325, 330, 327, 328, 329, 545, 545, 545, 0, 1406 0, 0, 291, 217, 301, 316, 317, 7, 357, 0, 1407 8, 14, 15, 0, 2, 60, 61, 563, 9, 291, 1408 523, 521, 244, 3, 452, 3, 257, 0, 3, 3, 1409 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1410 304, 307, 309, 338, 283, 331, 336, 284, 346, 285, 1411 353, 350, 360, 0, 0, 361, 286, 471, 475, 3, 1412 3, 0, 2, 517, 522, 527, 296, 0, 0, 545, 1413 575, 545, 2, 586, 587, 588, 291, 0, 729, 730, 1414 0, 12, 0, 13, 291, 267, 268, 0, 292, 287, 1415 288, 289, 290, 524, 302, 390, 546, 547, 368, 369, 1416 12, 443, 444, 11, 439, 442, 0, 501, 496, 487, 1417 443, 444, 0, 0, 526, 218, 0, 291, 0, 0, 1418 0, 0, 0, 0, 0, 0, 291, 291, 2, 0, 1419 731, 292, 580, 592, 735, 728, 726, 733, 0, 0, 1420 0, 251, 2, 0, 530, 437, 438, 436, 0, 0, 1421 0, 0, 545, 0, 632, 633, 0, 0, 543, 539, 1422 545, 560, 545, 545, 541, 2, 540, 545, 599, 545, 1423 545, 602, 0, 0, 0, 291, 291, 310, 358, 2, 1424 291, 258, 294, 305, 339, 351, 476, 0, 2, 0, 1425 452, 259, 292, 332, 347, 354, 472, 0, 2, 0, 1426 308, 333, 340, 341, 0, 348, 352, 355, 359, 444, 1427 291, 370, 363, 367, 0, 392, 473, 477, 0, 0, 1428 0, 1, 291, 2, 528, 574, 576, 291, 2, 739, 1429 292, 742, 543, 543, 0, 292, 0, 0, 270, 545, 1430 541, 2, 291, 0, 0, 291, 548, 2, 499, 2, 1431 552, 0, 0, 0, 0, 0, 0, 18, 57, 4, 1432 5, 6, 16, 0, 0, 291, 2, 62, 63, 64, 1433 65, 45, 19, 46, 22, 44, 66, 291, 0, 69, 1434 73, 76, 79, 84, 87, 89, 91, 93, 95, 97, 1435 102, 493, 749, 450, 492, 0, 448, 449, 0, 564, 1436 579, 582, 585, 591, 594, 597, 357, 0, 2, 737, 1437 0, 291, 740, 2, 60, 291, 3, 424, 0, 432, 1438 292, 291, 304, 331, 284, 346, 353, 3, 3, 406, 1439 410, 420, 425, 471, 291, 426, 704, 705, 291, 427, 1440 429, 291, 2, 581, 593, 727, 2, 2, 246, 2, 1441 457, 0, 455, 454, 453, 138, 2, 2, 248, 2, 1442 2, 247, 2, 278, 2, 279, 0, 277, 0, 0, 1443 0, 0, 0, 0, 0, 0, 0, 565, 604, 0, 1444 452, 2, 559, 568, 658, 561, 562, 531, 291, 2, 1445 598, 607, 600, 601, 0, 273, 291, 291, 337, 292, 1446 0, 292, 0, 291, 732, 736, 734, 532, 291, 543, 1447 252, 260, 306, 0, 2, 533, 291, 497, 334, 335, 1448 280, 349, 356, 0, 291, 0, 747, 397, 0, 474, 1449 498, 249, 250, 518, 291, 434, 0, 291, 234, 0, 1450 2, 236, 0, 292, 0, 254, 2, 255, 275, 0, 1451 0, 2, 291, 543, 291, 484, 486, 485, 0, 0, 1452 749, 0, 291, 0, 291, 488, 291, 558, 556, 557, 1453 555, 0, 550, 553, 0, 0, 291, 52, 291, 66, 1454 47, 291, 54, 291, 291, 50, 51, 2, 124, 0, 1455 0, 446, 0, 445, 726, 118, 291, 17, 0, 29, 1456 30, 35, 2, 0, 35, 108, 109, 110, 111, 112, 1457 113, 114, 115, 116, 117, 107, 0, 48, 49, 0, 1455 1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1457 109, 2, 649, 455, 646, 550, 550, 654, 483, 295, 1458 2, 588, 589, 0, 600, 601, 0, 2, 743, 746, 1459 112, 295, 0, 2, 711, 296, 715, 706, 707, 713, 1460 0, 2, 2, 671, 550, 754, 620, 550, 550, 754, 1461 550, 634, 550, 550, 685, 437, 668, 550, 550, 676, 1462 683, 295, 432, 296, 0, 0, 295, 721, 296, 726, 1463 754, 718, 295, 723, 754, 295, 295, 295, 0, 112, 1464 0, 18, 5, 2, 0, 19, 0, 462, 752, 0, 1465 0, 468, 242, 0, 295, 0, 0, 0, 548, 572, 1466 576, 578, 608, 611, 615, 618, 571, 610, 0, 285, 1467 661, 0, 295, 278, 0, 0, 0, 0, 276, 2, 1468 0, 260, 539, 295, 0, 0, 295, 2, 366, 386, 1469 375, 0, 0, 380, 374, 753, 0, 0, 399, 0, 1470 296, 3, 417, 3, 421, 420, 594, 0, 534, 295, 1471 63, 3, 295, 436, 296, 3, 430, 431, 2, 0, 1472 0, 0, 488, 307, 295, 484, 486, 3, 2, 2, 1473 0, 505, 3, 0, 557, 130, 0, 0, 223, 0, 1474 0, 0, 2, 0, 0, 36, 0, 0, 112, 295, 1475 20, 0, 21, 0, 695, 700, 451, 692, 550, 550, 1476 0, 110, 3, 2, 27, 2, 0, 33, 0, 2, 1477 25, 0, 107, 108, 74, 75, 76, 78, 79, 81, 1478 82, 86, 87, 84, 85, 89, 90, 92, 94, 96, 1479 98, 100, 0, 0, 755, 295, 0, 0, 0, 650, 1480 651, 647, 648, 500, 499, 295, 0, 295, 717, 295, 1481 722, 296, 295, 665, 295, 295, 708, 664, 2, 295, 1482 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 1483 672, 623, 639, 673, 2, 619, 626, 434, 621, 622, 1484 435, 2, 633, 642, 635, 636, 669, 670, 684, 712, 1485 716, 714, 754, 269, 2, 748, 2, 425, 720, 725, 1486 426, 0, 404, 3, 3, 3, 3, 456, 3, 0, 1487 2, 471, 467, 753, 0, 463, 470, 2, 466, 469, 1488 0, 295, 243, 265, 3, 273, 275, 0, 456, 2, 1489 574, 575, 2, 613, 614, 0, 662, 540, 3, 347, 1490 346, 349, 348, 295, 541, 0, 542, 374, 0, 0, 1491 295, 295, 0, 0, 695, 384, 387, 391, 550, 391, 1492 390, 383, 376, 550, 378, 381, 295, 401, 395, 105, 1493 402, 752, 0, 0, 439, 241, 0, 0, 3, 2, 1494 671, 432, 0, 530, 0, 754, 492, 0, 295, 295, 1495 295, 0, 554, 556, 131, 0, 0, 216, 0, 0, 1496 0, 224, 225, 56, 0, 62, 295, 0, 60, 59, 1497 0, 2, 129, 0, 0, 0, 696, 697, 693, 694, 1498 461, 71, 72, 111, 116, 3, 110, 0, 0, 0, 1499 24, 35, 3, 0, 32, 103, 0, 3, 653, 657, 1500 660, 652, 3, 595, 3, 719, 724, 2, 63, 295, 1501 3, 3, 296, 0, 3, 625, 629, 632, 641, 675, 1502 679, 682, 295, 3, 624, 640, 674, 295, 295, 427, 1503 295, 295, 749, 0, 0, 0, 0, 257, 0, 105, 1504 0, 3, 3, 0, 464, 0, 460, 0, 0, 246, 1505 295, 0, 0, 130, 0, 0, 0, 0, 0, 130, 1506 0, 0, 110, 110, 18, 2, 0, 0, 3, 132, 1507 133, 2, 144, 134, 135, 136, 137, 138, 139, 146, 1508 148, 0, 0, 0, 286, 295, 295, 550, 0, 543, 1509 295, 377, 379, 0, 393, 696, 388, 392, 389, 382, 1510 386, 369, 400, 0, 582, 2, 667, 666, 0, 672, 1511 2, 485, 487, 507, 3, 515, 516, 0, 2, 511, 1512 3, 3, 0, 0, 559, 223, 0, 0, 0, 223, 1513 0, 0, 3, 37, 112, 699, 703, 705, 698, 752, 1514 110, 0, 3, 664, 42, 3, 40, 3, 34, 0, 1515 3, 102, 104, 0, 2, 655, 656, 0, 0, 295, 1516 0, 0, 0, 3, 641, 0, 2, 627, 628, 2, 1517 643, 2, 677, 678, 0, 0, 63, 0, 3, 3, 1518 3, 3, 412, 411, 415, 2, 2, 751, 750, 113, 1519 0, 0, 0, 0, 3, 465, 3, 0, 244, 147, 1520 3, 296, 295, 0, 0, 0, 0, 2, 0, 192, 1521 0, 190, 0, 0, 0, 0, 0, 0, 0, 550, 1522 112, 0, 152, 149, 295, 0, 0, 268, 280, 3, 1523 3, 549, 616, 370, 385, 398, 295, 267, 295, 0, 1524 518, 495, 295, 0, 0, 494, 509, 0, 0, 0, 1525 217, 0, 226, 57, 110, 0, 2, 701, 702, 0, 1526 117, 114, 0, 0, 0, 0, 0, 0, 23, 0, 1527 658, 295, 583, 266, 727, 728, 729, 0, 680, 295, 1528 295, 295, 3, 3, 0, 688, 0, 0, 0, 0, 1529 295, 295, 3, 547, 472, 473, 0, 0, 247, 296, 1530 0, 0, 0, 0, 295, 193, 191, 188, 0, 194, 1531 0, 0, 0, 0, 198, 201, 199, 195, 0, 196, 1532 130, 35, 145, 143, 245, 0, 0, 419, 423, 422, 1533 0, 512, 2, 513, 2, 514, 508, 295, 229, 0, 1534 227, 0, 229, 3, 664, 295, 31, 115, 2, 45, 1535 2, 43, 41, 28, 113, 26, 3, 730, 3, 3, 1536 3, 0, 0, 687, 689, 630, 644, 270, 2, 409, 1537 3, 408, 0, 475, 472, 130, 0, 0, 130, 3, 1538 0, 130, 189, 0, 2, 2, 210, 200, 0, 0, 1539 0, 141, 0, 577, 617, 2, 0, 0, 2, 230, 1540 0, 0, 218, 0, 0, 0, 3, 0, 0, 0, 1541 0, 0, 0, 690, 691, 295, 0, 474, 153, 0, 1542 0, 2, 166, 130, 155, 0, 183, 0, 130, 0, 1543 2, 157, 0, 2, 0, 2, 2, 2, 197, 32, 1544 295, 517, 519, 510, 0, 0, 0, 0, 115, 38, 1545 0, 3, 3, 659, 631, 645, 681, 413, 130, 159, 1546 162, 0, 161, 165, 3, 168, 167, 0, 130, 185, 1547 130, 3, 0, 295, 0, 295, 0, 2, 0, 2, 1548 140, 2, 231, 232, 0, 228, 219, 0, 704, 0, 1549 0, 154, 0, 0, 164, 234, 169, 2, 236, 184, 1550 0, 187, 173, 202, 3, 211, 215, 204, 3, 0, 1551 295, 0, 295, 0, 0, 0, 39, 46, 44, 160, 1552 163, 130, 0, 170, 295, 130, 130, 0, 174, 0, 1553 0, 695, 212, 213, 214, 0, 203, 3, 205, 3, 1554 295, 220, 233, 150, 171, 156, 130, 237, 186, 181, 1555 179, 175, 158, 130, 0, 696, 0, 0, 0, 0, 1556 151, 172, 182, 176, 180, 179, 177, 3, 3, 0, 1557 0, 496, 178, 206, 208, 3, 3, 207, 209 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 1460 2, 644, 451, 641, 545, 545, 649, 478, 291, 2, 1461 583, 584, 0, 595, 596, 0, 2, 738, 741, 118, 1462 291, 0, 2, 706, 292, 710, 701, 702, 708, 0, 1463 2, 2, 666, 545, 749, 615, 545, 545, 749, 545, 1464 629, 545, 545, 680, 433, 663, 545, 545, 671, 678, 1465 291, 428, 292, 0, 0, 291, 716, 292, 721, 749, 1466 713, 291, 718, 749, 291, 291, 291, 0, 118, 0, 1467 18, 2, 0, 19, 0, 458, 747, 0, 0, 464, 1468 238, 0, 291, 0, 0, 0, 543, 567, 571, 573, 1469 603, 606, 610, 613, 566, 605, 0, 281, 656, 0, 1470 291, 274, 0, 0, 0, 0, 272, 2, 0, 256, 1471 534, 291, 0, 0, 291, 2, 362, 382, 371, 0, 1472 0, 376, 370, 748, 0, 0, 395, 0, 292, 3, 1473 413, 3, 417, 416, 589, 0, 529, 291, 60, 3, 1474 291, 432, 292, 3, 426, 427, 2, 0, 0, 0, 1475 483, 303, 291, 479, 481, 3, 2, 2, 0, 500, 1476 3, 0, 552, 126, 0, 0, 219, 0, 0, 0, 1477 0, 36, 0, 0, 118, 291, 20, 0, 21, 0, 1478 690, 695, 447, 687, 545, 545, 0, 105, 3, 2, 1479 27, 0, 33, 0, 2, 25, 0, 103, 70, 71, 1480 72, 74, 75, 77, 78, 82, 83, 80, 81, 85, 1481 86, 88, 90, 92, 94, 96, 0, 0, 750, 291, 1482 0, 0, 0, 645, 646, 642, 643, 495, 494, 291, 1483 0, 291, 712, 291, 717, 292, 291, 660, 291, 291, 1484 703, 659, 2, 291, 0, 0, 0, 0, 0, 0, 1485 0, 0, 681, 0, 667, 618, 634, 668, 2, 614, 1486 621, 430, 616, 617, 431, 2, 628, 637, 630, 631, 1487 664, 665, 679, 707, 711, 709, 749, 265, 2, 743, 1488 2, 421, 715, 720, 422, 0, 400, 3, 3, 3, 1489 3, 452, 3, 0, 2, 466, 463, 748, 0, 459, 1490 2, 462, 465, 0, 291, 239, 261, 3, 269, 271, 1491 0, 452, 2, 569, 570, 2, 608, 609, 0, 657, 1492 535, 3, 343, 342, 345, 344, 291, 536, 0, 537, 1493 370, 0, 0, 291, 291, 0, 0, 690, 380, 383, 1494 387, 545, 387, 386, 379, 372, 545, 374, 377, 291, 1495 397, 391, 101, 398, 747, 0, 0, 435, 237, 0, 1496 0, 3, 2, 666, 428, 0, 525, 0, 749, 487, 1497 0, 291, 291, 291, 0, 549, 551, 127, 0, 0, 1498 212, 0, 0, 0, 220, 221, 53, 0, 55, 58, 1499 59, 0, 2, 125, 0, 0, 0, 691, 692, 688, 1500 689, 457, 67, 68, 106, 122, 3, 105, 0, 0, 1501 24, 35, 3, 0, 32, 99, 0, 3, 648, 652, 1502 655, 647, 3, 590, 3, 714, 719, 2, 60, 291, 1503 3, 3, 292, 0, 3, 620, 624, 627, 636, 670, 1504 674, 677, 291, 3, 619, 635, 669, 291, 291, 423, 1505 291, 291, 744, 0, 0, 0, 0, 253, 0, 101, 1506 0, 3, 3, 0, 460, 0, 456, 0, 0, 242, 1507 291, 0, 0, 126, 0, 0, 0, 0, 0, 126, 1508 0, 0, 105, 105, 18, 2, 0, 0, 3, 128, 1509 129, 2, 140, 130, 131, 132, 133, 134, 135, 142, 1510 144, 0, 0, 0, 282, 291, 291, 545, 0, 538, 1511 291, 373, 375, 0, 389, 691, 384, 388, 385, 378, 1512 382, 365, 396, 0, 577, 2, 662, 661, 0, 667, 1513 2, 480, 482, 502, 3, 510, 511, 0, 2, 506, 1514 3, 3, 0, 0, 554, 219, 0, 0, 0, 219, 1515 0, 0, 118, 694, 698, 700, 693, 747, 105, 0, 1516 3, 659, 39, 3, 37, 34, 0, 3, 98, 100, 1517 0, 2, 650, 651, 0, 0, 291, 0, 0, 0, 1518 3, 636, 0, 2, 622, 623, 2, 638, 2, 672, 1519 673, 0, 0, 60, 0, 3, 3, 3, 3, 408, 1520 407, 411, 2, 2, 746, 745, 119, 0, 0, 0, 1521 0, 3, 461, 3, 0, 240, 143, 3, 292, 291, 1522 0, 0, 0, 0, 2, 0, 188, 0, 186, 0, 1523 0, 0, 0, 0, 0, 0, 545, 118, 0, 148, 1524 145, 291, 0, 0, 264, 276, 3, 3, 544, 611, 1525 366, 381, 394, 291, 263, 291, 0, 513, 490, 291, 1526 0, 0, 489, 504, 0, 0, 0, 213, 0, 222, 1527 56, 2, 696, 697, 0, 123, 120, 0, 0, 0, 1528 0, 0, 23, 0, 653, 291, 578, 262, 722, 723, 1529 724, 0, 675, 291, 291, 291, 3, 3, 0, 683, 1530 0, 0, 0, 0, 291, 291, 3, 542, 119, 468, 1531 0, 0, 243, 292, 0, 0, 0, 0, 291, 189, 1532 187, 184, 0, 190, 0, 0, 0, 0, 194, 197, 1533 195, 191, 0, 192, 126, 35, 141, 139, 241, 0, 1534 0, 415, 419, 418, 0, 507, 2, 508, 2, 509, 1535 503, 291, 225, 0, 223, 0, 225, 291, 31, 121, 1536 2, 42, 2, 40, 38, 28, 26, 3, 725, 3, 1537 3, 3, 0, 0, 682, 684, 625, 639, 266, 2, 1538 405, 3, 404, 0, 470, 467, 126, 0, 0, 126, 1539 3, 0, 126, 185, 0, 2, 2, 206, 196, 0, 1540 0, 0, 137, 0, 572, 612, 2, 0, 0, 2, 1541 226, 0, 0, 214, 0, 3, 0, 0, 0, 0, 1542 0, 0, 685, 686, 291, 0, 469, 149, 0, 0, 1543 2, 162, 126, 151, 0, 179, 0, 126, 0, 2, 1544 153, 0, 2, 0, 2, 2, 2, 193, 32, 291, 1545 512, 514, 505, 0, 0, 0, 0, 0, 3, 3, 1546 654, 626, 640, 676, 409, 126, 155, 158, 0, 157, 1547 161, 3, 164, 163, 0, 126, 181, 126, 3, 0, 1548 291, 0, 291, 0, 2, 0, 2, 136, 2, 227, 1549 228, 0, 224, 215, 699, 0, 0, 150, 0, 0, 1550 160, 230, 165, 2, 232, 180, 0, 183, 169, 198, 1551 3, 207, 211, 200, 3, 0, 291, 0, 291, 0, 1552 0, 0, 43, 41, 156, 159, 126, 0, 166, 291, 1553 126, 126, 0, 170, 0, 0, 690, 208, 209, 210, 1554 0, 199, 3, 201, 3, 291, 216, 229, 146, 167, 1555 152, 126, 233, 182, 177, 175, 171, 154, 126, 0, 1556 691, 0, 0, 0, 0, 147, 168, 178, 172, 176, 1557 175, 173, 3, 3, 0, 0, 491, 174, 202, 204, 1558 3, 3, 203, 205 1558 1559 }; 1559 1560 … … 1561 1562 static const yytype_int16 yydefgoto[] = 1562 1563 { 1563 -1, 81 9, 469, 302, 48, 135, 136, 303, 304, 305,1564 30 6, 766, 767, 1145, 1146, 307, 382, 309, 310, 311,1565 31 2, 313, 314, 315, 316, 317, 318, 319, 320, 321,1566 10 40, 519, 984, 323, 985, 547, 954, 1067, 1543, 1069,1567 10 70, 1071, 1072, 1544, 1073, 1074, 1460, 1461, 1422, 1423,1568 14 24, 1522, 1523, 1527, 1528, 1563, 1564, 1075, 1380, 1076,1569 10 77, 1314, 1315, 1316, 1504, 1078, 147, 960, 961, 962,1570 1 400, 1484, 1496, 1497, 470, 471, 881, 882, 1048, 52,1571 5 3, 54, 55, 56, 348, 160, 59, 60, 61, 62,1572 6 3, 350, 65, 66, 266, 68, 69, 276, 352, 353,1573 7 2, 73, 74, 75, 120, 77, 206, 355, 121, 80,1574 12 2, 82, 83, 456, 84, 455, 690, 691, 692, 915,1575 10 96, 916, 85, 86, 459, 457, 698, 861, 862, 358,1576 359, 701, 702, 703, 360, 361, 362, 363, 467, 341,1577 13 7, 138, 523, 325, 172, 647, 648, 649, 650, 651,1578 8 7, 123, 89, 490, 491, 946, 492, 279, 496, 326,1579 90, 139, 140, 91, 1337, 1118, 1119, 1120, 1121, 92,1580 9 3, 719, 94, 275, 95, 96, 189, 1042, 681, 413,1581 12 7, 97, 502, 503, 504, 190, 270, 192, 193, 194,1582 27 1, 100, 101, 102, 103, 104, 105, 106, 197, 198,1583 19 9, 200, 201, 831, 606, 607, 608, 609, 202, 611,1584 61 2, 613, 573, 574, 575, 576, 755, 107, 615, 616,1585 61 7, 618, 619, 620, 977, 757, 758, 759, 596, 366,1586 36 7, 368, 369, 327, 166, 109, 110, 111, 371, 696,1587 5 701564 -1, 813, 468, 301, 47, 134, 135, 302, 303, 304, 1565 305, 761, 762, 1133, 1134, 306, 381, 308, 309, 310, 1566 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1567 1030, 518, 975, 546, 322, 976, 947, 1057, 1518, 1059, 1568 1060, 1061, 1062, 1519, 1063, 1064, 1437, 1438, 1401, 1402, 1569 1403, 1497, 1498, 1502, 1503, 1538, 1539, 1065, 1361, 1066, 1570 1067, 1298, 1299, 1300, 1480, 1068, 146, 953, 954, 955, 1571 1381, 1461, 1472, 1473, 469, 470, 874, 875, 1038, 51, 1572 52, 53, 54, 55, 347, 159, 58, 59, 60, 61, 1573 62, 349, 64, 65, 265, 67, 68, 275, 351, 352, 1574 71, 72, 73, 74, 119, 76, 205, 354, 120, 79, 1575 121, 81, 82, 455, 83, 454, 688, 689, 690, 908, 1576 1086, 909, 84, 85, 458, 456, 696, 855, 856, 857, 1577 858, 699, 700, 701, 359, 360, 361, 362, 466, 340, 1578 136, 137, 522, 324, 171, 645, 646, 647, 648, 649, 1579 86, 122, 88, 489, 490, 939, 491, 278, 495, 325, 1580 89, 138, 139, 90, 1321, 1108, 1109, 1110, 1111, 91, 1581 92, 717, 93, 274, 94, 95, 188, 1032, 679, 412, 1582 126, 96, 501, 502, 503, 189, 269, 191, 192, 193, 1583 270, 99, 100, 101, 102, 103, 104, 105, 196, 197, 1584 198, 199, 200, 825, 605, 606, 607, 608, 201, 610, 1585 611, 612, 572, 573, 574, 575, 751, 106, 614, 615, 1586 616, 617, 618, 619, 968, 753, 754, 755, 595, 365, 1587 366, 367, 368, 326, 165, 108, 109, 110, 370, 694, 1588 569 1588 1589 }; 1589 1590 1590 1591 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1591 1592 STATE-NUM. */ 1592 #define YYPACT_NINF -1 4141593 #define YYPACT_NINF -1310 1593 1594 static const yytype_int16 yypact[] = 1594 1595 { 1595 4857, 9883, -1414, 35, -1414, -1414, -1414, -1414, -1414, -1414, 1596 -1414, 142, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1597 -1414, -1414, -1414, -1414, -1414, -1414, 98, 98, 98, 1334, 1598 684, 153, 7496, 290, -1414, -1414, -1414, -1414, -1414, 204, 1599 -1414, -1414, -1414, -1414, 901, 229, -1414, -1414, -1414, -1414, 1600 9565, -1414, -1414, -1414, -1414, -15, 301, -1414, 1624, -1414, 1601 -1414, -1414, -1414, 302, 1806, 471, 143, 7613, -1414, -1414, 1602 9603, 1367, -1414, -1414, -1414, 1721, 510, 3394, 1032, 1137, 1603 1721, 1303, -1414, -1414, 1174, 1520, -1414, 1721, 1532, -1414, 1604 385, -1414, 421, 523, -1414, -1414, -1414, -1414, 460, 301, 1605 98, -1414, 98, -1414, -1414, -1414, -1414, 10414, 1624, -1414, 1606 -1414, 1624, -1414, 447, -1414, 10444, -1414, -1414, 2082, 10554, 1607 -1414, 399, 399, 399, -1414, -1414, -1414, 98, -1414, -1414, 1608 -1414, 544, 555, 575, -1414, -1414, -1414, 617, -1414, -1414, 1609 -1414, -1414, -1414, 621, 629, -1414, -1414, 11, 9069, 3253, 1610 578, 492, 499, 631, 635, 642, 647, 9853, 7015, 649, 1611 656, -1414, 9713, -1414, -1414, -1414, -1414, 661, -1414, 193, 1612 3453, 3453, -1414, 667, 251, -1414, -1414, -1414, -1414, 692, 1613 327, 346, 368, 98, 673, -1414, -1414, 1806, 3136, 748, 1614 -1414, 12, -1414, 98, 98, 301, -1414, -1414, 75, -1414, 1615 98, 98, -1414, 3167, 711, 722, 399, 6806, -1414, -1414, 1616 726, 9565, -1414, -1414, 1721, -1414, -1414, -1414, 301, -1414, 1617 1624, -15, -1414, 7963, -1414, 399, 399, 399, 301, -1414, 1618 1334, -1414, 5769, -1414, -1414, 709, 399, -1414, 399, -1414, 1619 204, 9069, -1414, 763, -1414, 684, 765, 399, -1414, 1334, 1620 750, 766, -1414, 7496, 705, -1414, -1414, -1414, 9532, -1414, 1621 -1414, 10864, -1414, 748, 63, 6244, 10554, 2082, 3167, -1414, 1622 85, -1414, -1414, 10444, 1624, 804, 7644, -1414, -1414, 319, 1623 -1414, 11778, 782, 851, 4657, 828, 4994, 11639, -1414, 839, 1624 -1414, -1414, -1414, -1414, 11658, 11658, 8841, 844, -1414, -1414, 1625 -1414, -1414, -1414, -1414, 869, -1414, 759, 2440, 9183, 4994, 1626 -1414, 593, 571, 645, 313, 861, 842, 858, 843, 911, 1627 -20, -1414, -1414, 876, 326, -1414, 83, -1414, -1414, 3253, 1628 -1414, -1414, 139, 900, -1414, 422, 900, 905, 204, -1414, 1629 -1414, 909, 10414, -1414, 912, 917, 9297, -1414, -1414, 1382, 1630 2358, 8427, 6806, 1721, -1414, 1721, 399, 399, -1414, -1414, 1631 -1414, -1414, -1414, -1414, 399, 10414, 1624, -1414, -1414, 10584, 1632 1776, -1414, 10304, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1633 936, 11446, 4994, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1634 -1414, -1414, -1414, -1414, -1414, -1414, -1414, 2082, -1414, 836, 1635 947, 962, 963, 923, 965, 970, 972, 3136, -1414, -1414, 1636 959, -15, 975, -1414, -1414, 978, -1414, -1414, -1414, 9532, 1637 -1414, -1414, -1414, -1414, -1414, 3167, -1414, 9069, 9069, -1414, 1638 399, 2082, 6926, 1624, 8543, -1414, -1414, -1414, -1414, 9532, 1639 63, -1414, -1414, 1721, 301, -1414, -1414, 9532, -1414, 6689, 1640 -1414, -1414, 399, 399, 271, 10023, 907, 977, 960, 988, 1641 399, -1414, -1414, -1414, -1414, 10980, -1414, 500, 6556, -1414, 1642 301, 990, -1414, 2082, 11860, 11504, -1414, -1414, -1414, -1414, 1643 935, 3167, -1414, 8659, 748, 6228, -1414, -1414, -1414, 1482, 1644 550, 876, 684, 7644, 1180, 10444, -1414, 7644, -1414, -1414, 1645 -1414, -1414, 561, -1414, 997, 851, -13, 8841, -1414, 10694, 1646 -1414, -1414, 8841, -1414, 8955, 8841, -1414, -1414, 996, -1414, 1647 585, 1003, 455, 1017, -1414, -1414, 9993, 6037, -1414, 419, 1648 -1414, -1414, 11562, -1414, 469, 11562, -1414, -1414, -1414, -1414, 1649 -1414, -1414, -1414, -1414, -1414, -1414, 6244, 6244, -1414, -1414, 1650 4994, 4994, 4994, 4994, 4994, 4994, 4994, 4994, 4994, 4994, 1651 4994, 4994, 4994, 4994, 4994, 4994, 4994, 4994, 3735, 6244, 1652 -1414, 326, 1049, -1414, -1414, 98, 98, -1414, -1414, 9069, 1653 -1414, -1414, 978, 705, -1414, 978, 11581, -1414, -1414, -1414, 1654 3645, 6037, 1016, 1018, -1414, 10554, -1414, -1414, 661, -1414, 1655 1020, 1157, 1025, 2611, 95, 876, -1414, 98, 98, 876, 1656 134, -1414, 98, 98, 978, -1414, -1414, 98, 98, -1414, 1657 900, 10724, 1624, 12005, 69, 227, 10724, -1414, 10864, -1414, 1658 876, -1414, 10414, -1414, 218, 8079, 8079, 8079, 1624, -1414, 1659 5555, 1012, 260, 936, 778, 1021, 1024, -1414, 1026, 3453, 1660 343, -1414, 1115, 1624, 8079, 705, 2082, 705, 748, 534, 1661 900, -1414, -1414, 596, 900, -1414, -1414, -1414, 851, -1414, 1662 900, 301, 10980, -1414, 687, 1042, 700, 1043, -1414, 1044, 1663 301, -1414, -1414, 9532, 301, 1041, 10694, 1045, -1414, 2066, 1664 -1414, 408, 416, 684, -1414, 684, 1047, 4994, -1414, 684, 1665 12005, -1414, -1414, 1053, -1414, -1414, -1414, 705, -1414, 11933, 1666 917, -1414, 8079, 489, 8427, -1414, -1414, 661, 1055, 1056, 1667 1482, 3284, -1414, -1414, 7644, -1414, -1414, 1038, -1414, -1414, 1668 1064, -1414, 1038, 1070, 11778, 6244, 93, 1051, 138, 1074, 1669 1058, 1075, 844, 1069, 1077, -1414, 1079, 1081, 10133, 6775, 1670 -1414, 6244, -1414, 455, 1974, -1414, -1414, -1414, 98, 98, 1671 6104, 6244, 1076, -1414, -1414, 936, 707, -1414, 6244, -1414, 1672 -1414, 677, -1414, -1414, -1414, -1414, -1414, 593, 593, 571, 1673 571, 645, 645, 645, 645, 313, 313, 861, 842, 858, 1674 843, 911, 4994, 847, -1414, 10980, 1083, 1084, 1088, 1049, 1675 -1414, -1414, -1414, -1414, -1414, 10980, 717, 8079, -1414, 10414, 1676 -1414, 7135, 9411, -1414, 10304, 7015, -1414, -1414, 1157, 10980, 1677 945, 1089, 1090, 1095, 1096, 1099, 1100, 1105, -1414, 4392, 1678 2611, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1679 -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 978, -1414, 1680 -1414, -1414, 876, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1681 -1414, 1112, -1414, 1113, 1118, -1414, -1414, -15, 1076, 5555, 1682 -1414, -1414, -1414, 11446, 1116, -1414, -1414, -1414, -1414, -1414, 1683 684, 6369, 1201, -1414, -1414, -1414, -1414, 1103, -15, -1414, 1684 -1414, 978, -1414, -1414, 978, 126, 978, -1414, -1414, -1414, 1685 -1414, -1414, -1414, 9743, -1414, 301, -1414, -1414, 438, 452, 1686 10584, 7255, 2372, 4994, 2870, -1414, -1414, 1127, 39, 1127, 1687 -1414, 684, -1414, 98, -1414, -1414, 10163, 960, -1414, -1414, 1688 -1414, 977, 1143, 1131, -1414, -1414, 1150, 1153, -1414, 489, 1689 1995, -1414, 363, -1414, 3284, 876, -1414, 1160, 7644, 10834, 1690 9069, 1161, -1414, -1414, 1151, 1162, 1156, -1414, 4994, 120, 1691 279, 1163, -1414, 1166, 705, 1166, 6037, 6244, -1414, -1414, 1692 1166, 1165, -1414, 1176, 1182, 1185, 1974, -1414, -1414, -1414, 1693 11446, -1414, -1414, -1414, -1414, 1168, 6244, 1188, 705, 5555, 1694 -1414, 11562, -1414, 705, -1414, -1414, 6244, -1414, 614, 900, 1695 -1414, -1414, -1414, -1414, -1414, -1414, -1414, 936, 917, 9297, 1696 -1414, -1414, 7375, 1187, -1414, 758, 900, -1414, 785, 797, 1697 900, -1414, 399, 5912, -1414, -1414, -1414, 10980, 10980, -1414, 1698 8543, 8543, -1414, 1186, 1189, 1191, 1199, -1414, 1206, 439, 1699 119, 1076, -1414, 705, -1414, 3453, -1414, 6244, 480, -1414, 1700 6655, 1211, 1212, 11388, 1213, 1217, -6, 58, 117, 6244, 1701 1221, 301, 6244, 6244, 1215, 1222, 610, 1203, -1414, -1414, 1702 -1414, 1218, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1703 -1414, 684, 1226, 6244, -1414, 10980, 10980, 98, 1228, -1414, 1704 10273, -1414, -1414, 864, -1414, 2870, -1414, -1414, -1414, -1414, 1705 2066, -1414, -1414, 1230, -1414, -1414, -1414, -1414, 1231, 1995, 1706 -1414, -1414, 1223, -1414, 1038, -1414, -1414, 2082, 1235, -1414, 1707 -1414, -1414, 744, 1237, -1414, 138, 1245, 4994, 1232, 138, 1708 138, 1250, 1246, -1414, 9993, 825, 900, -1414, -1414, 1026, 1709 6244, 1251, 1168, 536, 161, 1261, -1414, 1246, -1414, 1254, 1710 1261, -1414, -1414, 1257, -1414, -1414, 978, 1270, 1271, 6895, 1711 1272, 1275, 1280, -1414, -1414, 1283, -1414, -1414, 978, -1414, 1712 -1414, -1414, -1414, 978, 6244, 6244, 917, 1282, -1414, -1414, 1713 -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1714 4994, 4994, 1284, 1286, 1261, -1414, -1414, 684, -1414, -1414, 1715 -1414, 5291, 10834, 6244, 6244, 1335, 6244, -1414, 1263, -1414, 1716 1267, -1414, 1281, 6244, 1288, 6244, 1039, 1290, 28, 98, 1717 5165, 856, -1414, -1414, 6369, 1287, 488, -1414, -1414, -1414, 1718 -1414, -1414, -1414, -1414, -1414, -1414, 11206, -1414, 8659, 1304, 1719 -1414, -1414, 10834, 490, 498, -1414, 1301, 1306, 851, 1317, 1720 -1414, 418, -1414, -1414, 6244, 1316, -1414, -1414, 978, 1314, 1721 -1414, -1414, 1318, 589, 691, 705, 1320, 1322, -1414, 1329, 1722 -1414, 10980, -1414, -1414, -1414, -1414, -1414, 1330, -1414, 10980, 1723 10980, 10980, -1414, -1414, 1332, -1414, 1333, 1336, 1339, 517, 1724 8195, 8311, -1414, -1414, 123, -1414, 1343, 1348, -1414, 8775, 1725 755, 768, 1342, 770, 6525, -1414, -1414, -1414, 508, -1414, 1726 777, 1352, 1353, 301, 1403, 933, -1414, -1414, 6244, -1414, 1727 11388, 11562, -1414, -1414, -1414, 1359, 1364, -1414, -1414, -1414, 1728 1363, -1414, -1414, -1414, -1414, -1414, -1414, 10834, 851, 273, 1729 -1414, 1347, 851, 1168, 268, 10980, -1414, -1414, -1414, -1414, 1730 -1414, -1414, -1414, -1414, 1365, -1414, -1414, -1414, -1414, -1414, 1731 -1414, 1368, 1371, -1414, -1414, -1414, -1414, -1414, -1414, -1414, 1732 1375, -1414, 1374, -1414, -1414, 11388, 91, 6244, 11388, -1414, 1733 1385, 6244, -1414, 288, 1402, 1405, -1414, -1414, 1390, 1393, 1734 1376, -1414, 882, -1414, -1414, -1414, 1624, 2082, 1388, 869, 1735 884, 4994, -1414, 803, 1394, 6244, -1414, 705, 705, 1399, 1736 1406, 1407, 1409, -1414, -1414, 8543, 1397, -1414, 1473, 4994, 1737 1404, -1414, -1414, 11299, -1414, 811, -1414, 1395, 11388, 1401, 1738 -1414, -1414, 1410, -1414, 1412, -1414, 1433, 1441, -1414, 1415, 1739 10834, -1414, -1414, -1414, 851, 705, 1429, 1417, 1436, -1414, 1740 1446, 1261, 1261, -1414, -1414, -1414, -1414, -1414, 11388, 278, 1741 -1414, 910, -1414, -1414, 7730, -1414, -1414, 1435, 6244, -1414, 1742 6244, 7730, 301, 10694, 301, 10694, 1462, -1414, 1463, -1414, 1743 -1414, 1460, 869, -1414, 812, -1414, -1414, 6244, -1414, 1465, 1744 1466, -1414, 4994, 4994, -1414, -1414, 1007, 37, -1414, -1414, 1745 1447, -1414, 1007, -1414, -1414, 2485, 705, -1414, -1414, 301, 1746 10694, 301, 10694, 1472, 1450, 705, -1414, -1414, -1414, -1414, 1747 -1414, 11299, 1468, 1007, 7847, 6244, 11210, 1475, 1007, 1477, 1748 2485, 2994, -1414, -1414, -1414, 1495, -1414, -1414, -1414, -1414, 1749 9069, -1414, -1414, -1414, 11077, -1414, 11299, -1414, -1414, 1476, 1750 10984, -1414, -1414, 11210, 301, 2994, 301, 1502, 1506, 813, 1751 -1414, 11077, -1414, -1414, -1414, 10984, -1414, -1414, -1414, 301, 1752 301, -1414, -1414, -1414, -1414, -1414, -1414, -1414, -1414 1596 7316, 8697, -1310, 16, -1310, -1310, -1310, -1310, -1310, -1310, 1597 -1310, 22, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1598 -1310, -1310, -1310, -1310, -1310, -1310, 101, 101, 101, 1152, 1599 941, 64, 7548, 141, -1310, -1310, -1310, -1310, -1310, 87, 1600 -1310, -1310, -1310, 868, 134, -1310, -1310, -1310, -1310, 9158, 1601 -1310, -1310, -1310, -1310, 149, 144, -1310, 1337, -1310, -1310, 1602 -1310, -1310, 139, 935, 260, 102, 2892, -1310, -1310, 9196, 1603 790, -1310, -1310, -1310, 904, 293, 5512, 547, 778, 904, 1604 1166, -1310, -1310, 554, 624, -1310, 904, 1343, -1310, 187, 1605 -1310, 308, 336, -1310, -1310, -1310, -1310, 251, 144, 101, 1606 -1310, 101, -1310, -1310, -1310, -1310, 8923, 1337, -1310, -1310, 1607 1337, -1310, 337, -1310, 9043, -1310, -1310, 1053, 9381, -1310, 1608 1729, 1729, 1729, -1310, -1310, -1310, 101, -1310, -1310, -1310, 1609 410, 413, 418, -1310, -1310, -1310, 433, -1310, -1310, -1310, 1610 -1310, -1310, 468, 477, -1310, -1310, 37, 8666, 2607, 742, 1611 369, 496, 509, 523, 530, 535, 8584, 6836, 536, 546, 1612 -1310, 9234, -1310, -1310, -1310, -1310, 561, -1310, 245, 4633, 1613 4633, -1310, 562, 361, -1310, -1310, -1310, -1310, 574, 383, 1614 408, 429, 101, 577, -1310, -1310, 935, 3015, 664, -1310, 1615 86, -1310, 101, 101, 144, -1310, -1310, 89, -1310, 101, 1616 101, -1310, 3541, 634, 653, 1729, 6748, -1310, -1310, 623, 1617 9158, -1310, -1310, 904, -1310, -1310, -1310, 144, -1310, 1337, 1618 149, -1310, 7737, -1310, 1729, 1729, 1729, 144, -1310, 1152, 1619 -1310, 5996, -1310, -1310, 642, 1729, -1310, 1729, -1310, 87, 1620 8666, -1310, 672, -1310, 941, 697, 1729, -1310, 1152, 699, 1621 702, -1310, 7548, 567, -1310, -1310, -1310, 9125, -1310, -1310, 1622 4167, -1310, 664, 10, 5116, 9381, 1053, 3541, -1310, 94, 1623 -1310, -1310, 9043, 1337, 715, 10741, -1310, -1310, 11, -1310, 1624 10483, 740, 772, 10231, 759, 10288, 10307, -1310, 763, -1310, 1625 -1310, -1310, -1310, 10364, 10364, 8440, 765, -1310, -1310, -1310, 1626 -1310, -1310, -1310, 799, -1310, 616, 2256, 8779, 10288, -1310, 1627 475, 860, 810, 276, 913, 766, 767, 793, 832, 41, 1628 -1310, -1310, 807, 704, -1310, 331, -1310, -1310, 2607, -1310, 1629 -1310, 242, 835, -1310, 421, 835, 841, 87, -1310, -1310, 1630 846, 8923, -1310, 847, 857, 8892, -1310, -1310, 1352, 2069, 1631 8155, 6748, 904, -1310, 904, 1729, 1729, -1310, -1310, -1310, 1632 -1310, -1310, -1310, 1729, 8923, 1337, -1310, -1310, 9419, 1457, 1633 -1310, 7886, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 1634 10098, 10288, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1635 -1310, -1310, -1310, -1310, -1310, -1310, 1053, -1310, 928, 862, 1636 891, 893, 1023, 916, 937, 951, 3015, -1310, -1310, 942, 1637 149, 958, -1310, -1310, 970, -1310, -1310, -1310, 9125, -1310, 1638 -1310, -1310, -1310, -1310, 3541, -1310, 8666, 8666, -1310, 1729, 1639 1053, 6867, 1337, 8228, -1310, -1310, -1310, -1310, 9125, 10, 1640 -1310, -1310, 904, 144, -1310, -1310, 9125, -1310, 6513, -1310, 1641 -1310, 1729, 1729, 382, 5342, 969, 972, 960, 1031, 1729, 1642 -1310, -1310, -1310, -1310, 9605, -1310, 450, 6629, -1310, 144, 1643 1033, -1310, 1053, 10565, 10155, -1310, -1310, -1310, -1310, 1039, 1644 3541, -1310, 8301, 664, 7432, -1310, -1310, -1310, 984, 626, 1645 807, 941, 10741, 606, 9043, -1310, 10741, -1310, -1310, -1310, 1646 -1310, 690, -1310, 1044, 772, 255, 8440, -1310, 9457, -1310, 1647 -1310, 8440, -1310, 8553, 8440, -1310, -1310, 1042, -1310, 722, 1648 1047, 818, 1048, -1310, -1310, 9310, 6479, -1310, 321, -1310, 1649 -1310, 5116, -1310, 602, 5116, -1310, -1310, -1310, -1310, -1310, 1650 -1310, -1310, -1310, -1310, -1310, -1310, 5116, -1310, -1310, 10288, 1651 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 1652 10288, 10288, 10288, 10288, 10288, 10288, 10288, 2426, 5116, -1310, 1653 704, 830, -1310, -1310, 101, 101, -1310, -1310, 8666, -1310, 1654 -1310, 970, 567, -1310, 970, 10212, -1310, -1310, -1310, 4524, 1655 6479, 1049, 1054, -1310, 9381, -1310, -1310, 561, -1310, 1056, 1656 774, 1073, 2515, 95, 807, -1310, 101, 101, 807, 98, 1657 -1310, 101, 101, 970, -1310, -1310, 101, 101, -1310, 835, 1658 9490, 1337, 10710, 283, 326, 9490, -1310, 4167, -1310, 807, 1659 -1310, 8923, -1310, 80, 7852, 7852, 7852, 1337, -1310, 4787, 1660 1065, 875, 744, 1066, 1067, -1310, 1070, 4633, 333, -1310, 1661 1134, 1337, 7852, 567, 1053, 567, 664, 494, 835, -1310, 1662 -1310, 584, 835, -1310, -1310, -1310, 772, -1310, 835, 144, 1663 9605, -1310, 737, 1083, 750, 1090, -1310, 1089, 144, -1310, 1664 -1310, 9125, 144, 1088, 9457, 1092, -1310, 1677, -1310, 441, 1665 448, 941, -1310, 941, 1091, 10288, -1310, 941, 10710, -1310, 1666 -1310, 1098, -1310, -1310, -1310, 567, -1310, 10638, 857, -1310, 1667 7852, 853, 8155, -1310, -1310, 561, 1095, 1097, 984, 3316, 1668 -1310, -1310, 10741, -1310, -1310, 1099, -1310, -1310, 1105, -1310, 1669 1099, 1111, 10483, 5116, 62, 1102, 167, 1113, 1121, 1129, 1670 1130, -1310, 1131, 1132, 9348, 6598, -1310, 5116, -1310, 818, 1671 978, -1310, -1310, -1310, 101, 101, 5540, 5116, 1135, -1310, 1672 -1310, 757, -1310, 5116, -1310, -1310, 914, -1310, -1310, -1310, 1673 -1310, 475, 475, 860, 860, 810, 810, 810, 810, 276, 1674 276, 913, 766, 767, 793, 832, 10288, 282, -1310, 9605, 1675 1136, 1137, 1140, 830, -1310, -1310, -1310, -1310, -1310, 9605, 1676 779, 7852, -1310, 8923, -1310, 6955, 9005, -1310, 7886, 6836, 1677 -1310, -1310, 774, 9605, 1063, 1142, 1143, 1145, 1146, 1147, 1678 1148, 1154, -1310, 3759, 2515, -1310, -1310, -1310, -1310, -1310, 1679 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1680 -1310, -1310, 970, -1310, -1310, -1310, 807, -1310, -1310, -1310, 1681 -1310, -1310, -1310, -1310, -1310, 1156, -1310, 1159, 1160, -1310, 1682 -1310, 149, 1135, 4787, -1310, -1310, -1310, 10098, 1157, -1310, 1683 -1310, -1310, -1310, 941, 6225, 1247, -1310, -1310, -1310, -1310, 1684 1150, 149, -1310, -1310, 970, -1310, -1310, 970, 137, 970, 1685 -1310, -1310, -1310, -1310, -1310, -1310, 9272, -1310, 144, -1310, 1686 -1310, 451, 452, 9419, 7074, 2178, 10288, 3429, -1310, -1310, 1687 1149, 39, 1149, -1310, 941, -1310, 101, -1310, -1310, 8073, 1688 960, -1310, -1310, -1310, 972, 1168, 1169, -1310, -1310, 1170, 1689 1172, -1310, 853, 1305, -1310, 359, -1310, 3316, 807, -1310, 1690 1177, 10741, 9528, 8666, 1180, -1310, -1310, 1175, 1182, 1164, 1691 -1310, 10288, 56, 233, 1179, -1310, 1183, 567, 1183, -1310, 1692 -1310, 1183, 1184, -1310, 1189, 1190, 1192, 978, -1310, -1310, 1693 -1310, 10098, -1310, -1310, -1310, -1310, 1188, 5116, 1193, 567, 1694 -1310, 5116, -1310, 567, -1310, -1310, 5116, -1310, 595, 835, 1695 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 857, 8892, 1696 -1310, -1310, 7193, 1196, -1310, 622, 835, -1310, 644, 649, 1697 835, -1310, 1729, 4053, -1310, -1310, -1310, 9605, 9605, -1310, 1698 8228, 8228, -1310, 1194, 1195, 1198, 1199, -1310, 1200, 531, 1699 27, 1135, -1310, 567, -1310, 4633, -1310, 5116, 453, -1310, 1700 6359, 1213, 1217, 10041, 1222, 1223, 43, 49, 106, 5116, 1701 1228, 144, 5116, 5116, 1208, 1237, 142, 1218, -1310, -1310, 1702 -1310, 1236, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1703 -1310, 941, 1249, 5116, -1310, 9605, 9605, 101, 1252, -1310, 1704 8810, -1310, -1310, 987, -1310, 3429, -1310, -1310, -1310, -1310, 1705 1677, -1310, -1310, 1253, -1310, -1310, -1310, -1310, 1254, 1305, 1706 -1310, -1310, 1239, -1310, 1099, -1310, -1310, 1053, 1258, -1310, 1707 -1310, -1310, 806, 1262, -1310, 167, 1267, 10288, 1248, 167, 1708 167, 1273, 9310, 693, 835, -1310, -1310, 1070, 5116, 1274, 1709 1188, 208, 157, 1269, -1310, -1310, 1278, 1269, -1310, -1310, 1710 1282, -1310, -1310, 970, 1286, 1288, 6717, 1287, 1289, 1291, 1711 -1310, -1310, 1290, -1310, -1310, 970, -1310, -1310, -1310, -1310, 1712 970, 5116, 5116, 857, 1292, -1310, -1310, -1310, -1310, -1310, 1713 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 10288, 10288, 1294, 1714 1295, 1269, -1310, -1310, 941, -1310, -1310, -1310, 5073, 9528, 1715 5116, 5116, 1370, 5116, -1310, 1298, -1310, 1299, -1310, 1302, 1716 5116, 1306, 5116, 1123, 1307, 30, 101, 5821, 1435, -1310, 1717 -1310, 6225, 1303, 456, -1310, -1310, -1310, -1310, -1310, -1310, 1718 -1310, -1310, -1310, 9861, -1310, 8301, 1330, -1310, -1310, 9528, 1719 463, 481, -1310, 1328, 1314, 772, 1341, -1310, 306, -1310, 1720 -1310, -1310, -1310, 970, 1332, -1310, -1310, 1342, 753, 834, 1721 567, 1345, -1310, 1350, -1310, 9605, -1310, -1310, -1310, -1310, 1722 -1310, 1351, -1310, 9605, 9605, 9605, -1310, -1310, 1359, -1310, 1723 1362, 1365, 1366, 557, 7925, 8040, -1310, -1310, 420, -1310, 1724 1368, 1371, -1310, 8374, 815, 844, 1346, 866, 6094, -1310, 1725 -1310, -1310, 485, -1310, 888, 1369, 1375, 144, 1417, 1051, 1726 -1310, -1310, 5116, -1310, 10041, 5116, -1310, -1310, -1310, 1377, 1727 1379, -1310, -1310, -1310, 1376, -1310, -1310, -1310, -1310, -1310, 1728 -1310, 9528, 772, 195, -1310, 1353, 772, 9605, -1310, -1310, 1729 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1730 -1310, -1310, 1384, 1388, -1310, -1310, -1310, -1310, -1310, -1310, 1731 -1310, 1394, -1310, 1397, -1310, -1310, 10041, 217, 5116, 10041, 1732 -1310, 1400, 5116, -1310, 289, 1421, 1423, -1310, -1310, 1403, 1733 1415, 1393, -1310, 1001, -1310, -1310, -1310, 1337, 1053, 1412, 1734 799, 323, 10288, -1310, 953, -1310, 567, 567, 1418, 1425, 1735 1426, 1428, -1310, -1310, 8228, 1427, -1310, 1497, 10288, 1420, 1736 -1310, -1310, 9953, -1310, 955, -1310, 1419, 10041, 1424, -1310, 1737 -1310, 1442, -1310, 1445, -1310, 1461, 1462, -1310, 1430, 9528, 1738 -1310, -1310, -1310, 772, 567, 1453, 1436, 1459, 1269, 1269, 1739 -1310, -1310, -1310, -1310, -1310, 10041, 204, -1310, 370, -1310, 1740 -1310, 3684, -1310, -1310, 1439, 5116, -1310, 5116, 3684, 144, 1741 9457, 144, 9457, 1463, -1310, 1465, -1310, -1310, 1464, 799, 1742 -1310, 968, -1310, -1310, -1310, 1460, 1466, -1310, 10288, 10288, 1743 -1310, -1310, 1075, 122, -1310, -1310, 1444, -1310, 1075, -1310, 1744 -1310, 2191, 567, -1310, -1310, 144, 9457, 144, 9457, 1472, 1745 1450, 567, -1310, -1310, -1310, -1310, 9953, 1469, 1075, 7664, 1746 5116, 9865, 1470, 1075, 1479, 2191, 3509, -1310, -1310, -1310, 1747 1482, -1310, -1310, -1310, -1310, 8666, -1310, -1310, -1310, 9732, 1748 -1310, 9953, -1310, -1310, 1468, 9644, -1310, -1310, 9865, 144, 1749 3509, 144, 1484, 1486, 976, -1310, 9732, -1310, -1310, -1310, 1750 9644, -1310, -1310, -1310, 144, 144, -1310, -1310, -1310, -1310, 1751 -1310, -1310, -1310, -1310 1753 1752 }; 1754 1753 … … 1756 1755 static const yytype_int16 yypgoto[] = 1757 1756 { 1758 -1 414, 4377, 3077, -1414, 1645, -1414, 305, 958, -11, -1414,1759 5 52, -530, -487, -944, -142, 3604, 0, -1414, 1277, 511,1760 5 29, 298, 549, 1057, 1060, 1054, 1062, 1065, -1414, -211,1761 - 327, 5116, -961, -725, -952, -1414, -200, -594, 572, -1414,1762 1379, -1414, 397, -1413, -1414, -1414, 129, -1414, -1160, -935,1763 24 6, -1414, -1414, -1414, -1414, 68, -1131, -1414, -1414, -1414,1764 -1 414, -1414, -1414, 321, -1152, 33, -1414, -696, -1414, 506,1765 296, -1 414, 169, -1414, -339, -1414, -1414, -1414, 558, -728,1766 -1 414, -1414, 19, -974, 177, 2303, -1414, -1414, -1414, -91,1767 -1 414, 166, 269, -194, 1705, 3615, -1414, -1414, 36, 224,1768 6 28, -235, 1694, -1414, 1557, -1414, -1414, 200, 2163, -1414,1769 2 278, 185, -1414, -1414, -1414, -607, -1414, 956, 957, 545,1770 7 25, -320, -1414, -1414, -1414, 950, 719, -493, -1414, -472,1771 - 355, 1296, -1414, -1414, -899, -946, 440, 524, 1067, 168,1772 -1 414, 1040, 317, -281, -198, -141, 672, 781, -1414, 1005,1773 -1 414, 2834, 55, -450, 932, -1414, -1414, 712, -1414, -228,1774 -1 414, 104, -1414, -1414, -1414, -1285, 420, -1414, -1414, -1414,1775 11 78, -1414, 31, -1414, -1414, -862, -94, -1364, -152, 1641,1776 -1 414, 3733, -1414, 927, -1414, -170, 493, -184, -183, -181,1777 7, - 42, -36, -33, 1610, 4, 10, 14, -143, -177,1778 -1 72, -162, -161, -319, -513, -508, -498, -547, -310, -528,1779 -1 414, -1414, -511, 1101, 1102, 1110, 1575, 4802, -565, -560,1780 -55 9, -541, -551, -1414, -506, -744, -736, -732, -593, -267,1781 -2 27, -1414, -1414, 624, 294, -85, -1414, 3753, 44, -634,1782 - 1731757 -1310, 4585, 3220, -1310, 1680, -1310, 79, 965, -162, -1310, 1758 542, -525, -472, -928, -58, 5006, 0, -1310, 115, 571, 1759 588, 220, 578, 1041, 1045, 1037, 1040, 1043, -1310, 682, 1760 -568, 4467, -949, -1310, -743, 627, -136, -680, 399, -1310, 1761 364, -1310, 400, -1052, -1310, -1310, 143, -1310, -1280, -1058, 1762 249, -1310, -1310, -1310, -1310, 74, -1199, -1310, -1310, -1310, 1763 -1310, -1310, -1310, 317, -1213, 36, -1310, -398, -1310, 501, 1764 296, -1310, 175, -1310, -322, -1310, -1310, -1310, 558, -827, 1765 -1310, -1310, 14, -963, 60, 1949, -1310, -1310, -1310, -66, 1766 -1310, 19, 1219, -202, 1852, 4238, -1310, -1310, 54, 75, 1767 689, -242, 1416, -1310, 1975, -1310, -1310, 158, 2131, -1310, 1768 2701, 1038, -1310, -1310, -1310, -621, -1310, 944, 946, 541, 1769 713, -254, -1310, -1310, -1310, 938, 714, -169, -1310, -117, 1770 -134, 1167, -1310, -1310, -857, -878, 837, 910, 1055, 25, 1771 -1310, 900, 597, -39, -190, -145, 668, 773, -1310, 993, 1772 -1310, 2728, 1561, -434, 920, -1310, -1310, 708, -1310, -238, 1773 -1310, 241, -1310, -1310, -1310, -1226, 414, -1310, -1310, -1310, 1774 1165, -1310, 35, -1310, -1310, -830, -111, -1309, -151, 3288, 1775 -1310, 3069, -1310, 921, -1310, -170, 169, -182, -181, -166, 1776 7, -35, -33, -32, 813, 2, 29, 44, -122, -165, 1777 -164, -158, -153, -314, -519, -491, -490, -538, -301, -501, 1778 -1310, -1310, -512, 1078, 1084, 1085, 2540, 5063, -571, -588, 1779 -558, -543, -557, -1310, -503, -733, -723, -722, -570, -311, 1780 -274, -1310, -1310, 240, 176, -77, -1310, 3991, 136, -632, 1781 -222 1783 1782 }; 1784 1783 … … 1786 1785 positive, shift that token. If negative, reduce the rule which 1787 1786 number is the opposite. If YYTABLE_NINF, syntax error. */ 1788 #define YYTABLE_NINF -52 61787 #define YYTABLE_NINF -521 1789 1788 static const yytype_int16 yytable[] = 1790 1789 { 1791 50, 115, 151, 400, 401, 771, 402, 99, 152, 973, 1792 403, 153, 429, 454, 874, 404, 756, 974, 408, 1080, 1793 116, 975, 262, 441, 269, 405, 406, 744, 850, 384, 1794 385, 605, 50, 51, 1142, 982, 70, 411, 833, 99, 1795 610, 825, 826, 727, 149, 409, 499, 732, 154, 1150, 1796 50, 31, 1398, 836, 155, 1462, 832, 163, 156, 843, 1797 827, 800, 282, 145, 188, 51, 1208, 211, 70, 528, 1798 50, 195, 343, 824, 218, 567, 1200, 228, 31, 597, 1799 671, -235, -235, 400, 401, 1184, 402, 926, 821, 221, 1800 403, 1318, 170, 822, 168, 404, 520, 737, 408, 1194, 1801 680, 1217, 1218, 823, 738, 405, 406, 115, 684, 426, 1802 568, 476, 478, 1550, 31, 115, 171, 124, 268, 273, 1803 283, 254, 217, 412, 31, 409, 1209, 410, 715, 1462, 1804 1210, 1182, 1183, 1561, 31, 1419, 1420, 31, 629, 244, 1805 1565, 955, 633, 865, 866, 151, 675, 677, 308, 149, 1806 412, 152, -235, 1079, 153, 1481, 163, 115, 346, 168, 1807 1319, 884, 211, 863, 863, 863, 64, 472, 973, 374, 1808 722, 204, 477, 31, 217, 528, 974, 57, 117, 1260, 1809 975, 853, 863, 920, 420, 854, 412, 188, 188, 1212, 1810 1211, 154, 328, 578, 482, 163, 412, 155, 64, 579, 1811 78, 156, 528, 268, 834, 1421, 602, 821, 528, 57, 1812 956, 50, 822, 669, 731, 1190, 716, 217, 163, 938, 1813 293, 205, 823, 211, 71, 151, 179, 674, 676, 1127, 1814 444, 152, 78, 746, 153, 1213, 1087, 666, -113, -113, 1815 863, 308, 1191, 841, 212, 602, 1263, 222, 580, 958, 1816 412, 125, 216, 50, -113, 437, 71, 589, 825, 826, 1817 99, 273, 144, 1466, 667, 1026, 273, 268, 268, 836, 1818 118, 1152, 506, 115, 1264, 163, 263, 827, 217, 264, 1819 864, 864, 864, 1025, 464, 328, 51, 343, 1001, 70, 1820 1013, 214, 1184, 610, 108, 108, 308, 1103, 804, 864, 1821 1090, 146, 1343, 658, 216, 821, 113, 520, 308, 378, 1822 822, 666, 520, 148, 1004, 520, 217, 437, 725, 161, 1823 823, 217, 1199, 1508, 572, 379, 108, 477, 472, 149, 1824 1200, 673, 1419, 1420, 448, 863, 374, 678, 667, 855, 1825 -470, 157, 115, 856, 905, 1184, 346, 216, 472, 569, 1826 603, 621, 168, 461, 597, 528, 472, 864, 1537, 597, 1827 1539, 1466, 1080, 810, 108, 626, 1466, 388, 793, 626, 1828 930, -470, 115, -470, 1492, 833, 260, -470, -113, 825, 1829 826, 685, 1401, 389, 161, 1405, 1466, 579, 440, 1128, 1830 599, 1182, 1183, 1466, 715, 1551, 1129, 268, 827, -113, 1831 442, 1191, 1430, 557, 558, 859, 217, 188, 216, 8, 1832 9, 10, 11, 12, 374, 173, 850, 324, 183, 64, 1833 43, 252, 1566, 876, 473, 268, 340, 308, 308, 1247, 1834 57, 268, 837, 1251, 626, 571, 840, 412, 31, 559, 1835 560, 343, 484, 391, 46, 47, 216, 443, 494, 501, 1836 495, 216, 864, 78, 877, 115, 644, 857, 78, 392, 1837 878, 860, 393, 1451, 1452, 1214, 34, 1170, 1172, 1184, 1838 1138, 328, 328, 268, 203, 855, 431, 71, 394, 1110, 1839 435, 268, 716, 626, 395, 50, 929, 217, 374, 721, 1840 1200, 112, 99, 98, 736, 115, 1079, 1200, 1114, 499, 1841 396, 249, 41, 42, 1148, 1259, 888, 308, 875, 115, 1842 324, 1024, 308, -291, 308, 308, 1457, 179, 51, 917, 1843 610, 70, 754, -521, 921, 98, 115, 346, 1341, 217, 1844 763, 583, 923, 412, 630, 1342, 216, 150, 634, 328, 1845 922, 112, 435, 98, 1026, 489, 919, 108, 924, 43, 1846 1200, -106, 41, 42, 921, -106, 715, 191, 328, 466, 1847 98, 1521, 886, 98, 753, 522, 412, 1526, 923, 254, 1848 1091, 572, 572, 46, 47, 214, 1381, 161, 265, 308, 1849 769, 995, 1006, 43, 1092, 473, 1094, 810, 1546, 1138, 1850 626, 346, 472, 1553, 920, 621, 1197, 1097, 939, 1097, 1851 602, 603, 331, 603, 1197, 473, 1332, 46, 47, 332, 1852 706, 588, 1198, 473, 1334, 594, 707, 216, 935, 78, 1853 1324, 626, 1333, 328, 751, 1024, 626, 812, 621, 1367, 1854 1335, 1126, 626, 1368, 627, 626, 626, 626, 631, 78, 1855 1382, 340, 98, 889, 716, 412, -113, 78, -113, 713, 1856 217, 64, -113, -10, 626, 98, 268, 895, 1039, 216, 1857 723, 112, 57, 343, -444, 851, 724, -113, -113, 1037, 1858 599, 733, 41, 42, 165, 1181, 810, 734, 217, 1029, 1859 399, 191, 288, 217, -445, 78, 115, 254, 330, 914, 1860 1084, 553, 554, 41, 42, 750, 324, 324, 214, 231, 1861 1348, 751, 929, 232, 98, 892, 236, 412, 238, 71, 1862 1379, 550, 626, 940, 621, 247, 98, 551, 552, 515, 1863 721, 721, 1122, 1154, 689, 412, 278, 959, 400, 401, 1864 280, 402, 1044, 555, 556, 403, 1498, 118, 281, 165, 1865 404, 333, 597, 1498, 408, 334, 98, 929, 115, 346, 1866 405, 406, 335, 754, 754, 217, 112, 336, 141, 142, 1867 480, 372, 489, 112, 324, 373, 489, 41, 42, 217, 1868 377, 409, 1111, 113, 41, 42, 522, 112, 522, 108, 1869 216, 522, 386, 324, 522, 1151, 973, 1429, 41, 42, 1870 852, 1392, 994, 991, 974, 340, 1547, 899, 975, 572, 1871 1249, 390, 1350, 751, 715, 398, 867, 626, 216, 626, 1872 901, 1009, 410, 216, 626, 346, 751, 990, 603, 743, 1873 427, 883, 98, 991, 739, 343, 740, 1003, 1174, 741, 1874 603, 428, 747, 707, 764, 436, 1039, 743, 433, 770, 1875 743, 451, 231, 604, 529, 530, 531, 443, 324, 473, 1876 112, 812, 141, 142, 1245, 781, 782, 783, 784, 808, 1877 579, 41, 42, 1292, 1293, 1375, 217, 1166, 532, 412, 1878 533, 751, 534, 535, 1500, 473, 1501, -368, 1376, -397, 1879 1378, 308, 462, 78, 751, 216, 751, 1383, 466, 870, 1880 849, 505, 716, 751, 1169, 594, 602, 436, 463, 216, 1881 191, 858, 501, 626, 1195, 704, 1171, 810, 602, 78, 1882 115, 346, 914, 1447, 914, 713, 929, 70, 485, 1444, 1883 524, 1467, 1514, 1571, 214, 666, 115, 751, 1515, 579, 1884 917, 1548, 165, 293, 1256, 1370, 412, 509, 214, 940, 1885 940, 529, 530, 531, 721, 254, 330, 412, 514, 115, 1886 308, 528, 667, 561, 562, 689, 526, 919, 49, 114, 1887 885, 563, 887, 751, 996, 532, 346, 533, 1115, 534, 1888 1321, 716, 565, 37, 330, 412, 754, 40, 98, 929, 1889 929, 231, 604, 236, 41, 42, 564, 114, 114, 705, 1890 49, 1388, 1389, 489, 328, 43, 216, 1439, 991, 1533, 1891 1444, 1445, 49, 1300, 1301, 566, 1303, 569, 49, 346, 1892 44, 339, 934, 1308, -441, 1310, 49, 340, 587, 46, 1893 47, 694, 49, 1240, 590, 49, 1493, 1494, 49, -3, 1894 626, 626, 420, 662, 412, 214, 2, 208, 4, 5, 1895 6, 7, 114, 114, 482, 330, 412, 64, 639, 1138, 1896 308, 1419, 1420, 851, 834, 330, 602, 659, 57, 8, 1897 9, 10, 11, 12, 777, 778, 49, 217, 668, 49, 1898 143, 231, 660, 661, 1446, 663, 49, 713, 1005, 693, 1899 664, 78, 665, 808, 779, 780, 1202, 670, 31, 259, 1900 115, 697, 1459, 695, 820, 914, 604, 1311, 1312, 1313, 1901 914, 35, 699, 36, -239, 71, 735, 49, 748, 940, 1902 785, 786, 704, 752, 959, 49, 34, 268, 959, 959, 1903 49, 1349, 1351, 1352, 243, 246, 1116, 760, 813, -12, 1904 814, 524, 817, 524, 626, 343, 524, 828, -13, 524, 1905 -292, 872, 873, 43, 880, 49, 49, 8, 9, 10, 1906 11, 12, 900, 902, 724, 907, 903, 910, 571, 346, 1907 412, 49, 928, -418, -3, 1519, 1459, 46, 47, 49, 1908 -525, 943, 808, 950, 964, 108, 31, 1425, 49, 340, 1909 952, 49, 918, 957, 963, 965, 967, 968, 114, 969, 1910 929, 970, 986, 998, 999, 689, 705, 216, 1000, 1015, 1911 1016, 273, 115, 114, 34, 1017, 1018, 114, 929, 1019, 1912 1020, 49, 114, 820, 604, 1021, 473, 489, 1117, 324, 1913 115, 221, 1032, -406, 308, 49, 49, 57, -405, 37, 1914 1081, 1046, 49, 40, 1083, 704, 443, 1339, 626, 49, 1915 41, 42, 115, 108, 913, 704, 112, 1105, 141, 240, 1916 78, 43, 112, 1104, 141, 142, 217, 41, 42, 704, 1917 70, 1115, 1106, 41, 42, 1107, 818, 751, 602, 1131, 1918 1113, 1123, 1124, 1125, 71, 46, 47, 1134, 849, 1130, 1919 980, 929, 929, 241, 1140, 458, 1135, 49, 242, 728, 1920 626, 626, 1136, 1144, 729, 1137, 743, 1164, 1144, 273, 1921 1143, 1187, 1185, 1442, 308, 1186, -293, 49, 49, 1188, 1922 693, 820, 1559, 8, 9, 10, 11, 12, 1189, 705, 1923 1203, 1204, 1206, 604, 49, 713, 1207, 1399, 49, 705, 1924 1215, 1399, 1219, -3, 1220, 1222, 1227, 115, 1232, 645, 1925 1202, 1237, 31, 705, 108, 1235, 400, 401, 1144, 402, 1926 1241, 1246, 494, 403, 217, 49, 1115, 1248, 404, 689, 1927 1253, 408, 1254, 1261, 1250, 49, 1268, 1270, 405, 406, 1928 34, 2, 208, 4, 5, 6, 7, 1265, 212, 222, 1929 1272, 1273, 1302, 49, 1274, 666, 216, 1275, 409, 49, 1930 64, 49, 1276, 1278, 1285, 1305, 1294, 268, 1295, 1306, 1931 230, 57, 1323, 808, 713, 1093, 131, 918, 132, 133, 1932 134, 1532, 667, 1307, 1330, 626, 1336, 41, 42, 1116, 1933 1309, 646, 1317, 1338, 78, 214, 114, 1340, 1344, 1346, 1934 1347, 49, 1353, 1482, 1354, 175, 35, 604, 36, 49, 1935 115, 1355, 1357, 49, 1363, 1364, 1365, 49, 71, 1366, 1936 114, 1377, 114, 1068, 37, 1373, 176, 177, 40, 1115, 1937 1374, 1384, 1385, 1313, 115, 41, 42, 704, 704, 1393, 1938 473, 115, 645, 115, 1394, 115, 442, 1395, 255, 1402, 1939 1413, 57, 1405, 1414, 216, -407, 1417, 114, 151, 340, 1940 645, 373, 114, 645, 152, 1428, 108, 153, 1432, 1436, 1941 1202, 1434, 1437, 1443, 78, 1531, 1448, 1202, 1438, 1453, 1942 115, 1117, 115, 1368, 1116, 1458, 1454, 1455, 108, 1456, 1943 1472, 1463, 1474, 443, 115, 704, 704, 1468, 71, 1476, 1944 1531, 1531, 726, 1470, 730, -294, 108, 1478, 163, 1485, 1945 308, 114, 8, 9, 10, 11, 12, 1480, 49, 1486, 1946 693, 705, 705, 1487, 37, 1531, 1488, 76, 40, 49, 1947 1202, 49, 374, 511, 1441, 41, 42, 1499, 1144, 1144, 1948 1144, 31, 1509, 1511, 418, 1513, 43, 1517, 1518, 1525, 1949 49, 1540, 1541, 1545, 328, 548, 549, 1554, 918, 76, 1950 1552, 720, 112, 918, 141, 142, 49, 438, 108, 34, 1951 46, 47, 114, 41, 42, 1556, 1117, 446, 1562, 705, 1952 705, 49, 1569, 114, 49, 114, 1570, 1116, 1221, 789, 1953 787, 1322, 1520, 548, 788, 1205, 743, 224, 790, 1431, 1954 473, 108, 791, 1572, 245, 1387, 1252, 473, 1403, 1226, 1955 1502, 57, 908, 909, 1098, 1234, 1102, 49, 57, 931, 1956 806, 114, 1139, 114, 1045, 879, 945, 114, 1112, 548, 1957 164, 953, 1331, 718, 78, 114, 0, 126, 129, 130, 1958 0, 78, 796, 797, 196, 521, 1328, 219, 49, 49, 1959 229, 798, 0, 0, 871, 0, 0, 0, 71, 0, 1960 473, 0, 49, 0, 0, 71, 37, 0, 176, 177, 1961 40, 57, 0, 178, 0, 67, 119, 41, 42, 1117, 1962 0, 704, 1144, 1144, 693, 354, 0, 0, 0, 704, 1963 704, 704, 0, 0, 78, 2, 208, 4, 5, 6, 1964 7, 0, 0, 925, 108, 927, 0, 67, 0, 458, 1965 0, 256, 1505, 257, 1505, 0, 0, 0, 71, 0, 1966 1483, 0, 0, 178, 0, 162, 178, 0, 108, 164, 1967 1329, 215, 0, 0, 0, 108, 414, 0, 0, 0, 1968 0, 234, 375, 422, 0, 223, 49, 0, 0, 1505, 1969 0, 1505, 0, 0, 0, 704, 0, 0, 49, 450, 1970 35, 0, 36, 0, 0, 705, 1068, 0, 164, 0, 1971 0, 0, 178, 705, 705, 705, 0, 0, 0, 324, 1972 76, 1534, 261, 215, 0, 76, 0, 0, 108, 0, 1973 1542, 164, 0, 682, 397, 0, 0, 774, 775, 776, 1974 0, 645, 0, 445, 416, 417, 0, 0, 114, 421, 1975 0, 423, 424, 0, 0, 414, 0, 0, 37, 708, 1976 176, 177, 40, 0, 329, 0, 215, 0, 0, 41, 1977 42, 49, 261, 351, 0, 178, 0, 0, 0, 705, 1978 49, 0, 49, 0, 0, 0, 0, 0, 37, 114, 1979 185, 186, 40, 0, 0, 377, 521, 0, 0, 41, 1980 42, 521, 1391, 407, 521, 0, 0, 0, 0, 577, 1981 43, 0, 49, 0, 0, 0, 0, 581, 425, 224, 1982 584, 430, 432, 646, 0, 187, 162, 215, 0, 178, 1983 1049, 0, 114, 0, 46, 47, 178, 0, 0, 0, 1984 0, 0, 0, 0, 0, 0, 0, 449, 645, 375, 1985 0, 452, 0, 453, 0, 0, 114, 1418, 0, 645, 1986 1426, 114, 460, 0, 0, 215, 0, 0, 67, 0, 1987 215, 1099, 0, 474, 0, 0, 0, 0, 898, 0, 1988 0, 0, 0, 481, 414, 500, 76, 0, 422, 0, 1989 0, 432, 0, 0, 8, 9, 10, 11, 12, 0, 1990 0, 354, 0, 0, 178, 1465, 76, 0, 0, 0, 1991 1469, 114, 0, 0, 76, 8, 9, 10, 11, 12, 1992 0, 178, 0, 31, 0, 178, 0, 375, 0, 0, 1993 646, 0, 354, 480, 0, 0, 0, 0, 0, 0, 1994 1491, 0, 0, 0, 31, 0, 0, 981, 0, 114, 1995 354, 34, 76, 0, 0, 215, 0, 261, 0, 0, 1996 897, 595, 0, 49, 0, 414, 0, 623, 49, 904, 1997 0, 0, 34, 906, 0, 0, 0, 0, 43, 0, 1998 628, 0, 0, 0, 628, 49, 0, 261, 178, 0, 1999 0, 0, 0, 753, 354, 412, 0, 0, 0, 43, 2000 0, 997, 46, 47, 0, 0, 0, 1506, 0, 1506, 2001 0, 1002, 0, 0, 939, 0, 602, 0, 0, 0, 2002 0, 0, 0, 46, 47, 1014, 1560, 0, 0, 0, 2003 0, 1049, 1560, 0, 474, 0, 215, 0, 0, 0, 2004 0, 0, 0, 1560, 1506, 0, 1506, 1560, 37, 351, 2005 185, 186, 40, 215, 474, 0, 577, 577, 354, 41, 2006 42, 0, 474, 0, 37, 114, 185, 186, 40, 0, 2007 43, 0, 0, 79, 0, 41, 42, 0, 215, 0, 2008 700, 0, 0, 432, 0, 912, 43, 412, 49, 0, 2009 0, 0, 0, 913, 46, 47, 0, 0, 714, 0, 2010 67, 267, 354, 354, 354, 79, 0, 0, 432, 0, 2011 46, 47, 432, 0, 0, 0, 0, 0, 0, 0, 2012 0, 354, 0, 0, 0, 0, 801, 802, 0, 0, 2013 0, 114, 114, 114, 0, 0, 0, 0, 0, 354, 2014 0, 261, 351, 225, 890, 178, 0, 1298, 893, 0, 2015 76, 0, 0, 0, 0, 835, 0, 0, 838, 839, 2016 0, 842, 0, 844, 845, 0, 0, 0, 846, 847, 2017 0, 0, 0, 0, 0, 0, 76, 178, 0, 354, 2018 0, 0, 0, 0, 0, 0, 0, 799, 81, 645, 2019 0, 0, 0, 178, 1089, 0, 548, 0, 0, 215, 2020 0, 0, 0, 0, 0, 628, 811, 0, 178, 0, 2021 0, 0, 0, 58, 58, 0, 354, 0, 830, 0, 2022 81, 0, 0, 0, 0, 0, 0, 215, 0, 0, 2023 0, 356, 215, 1179, 1180, 0, 595, 511, 0, 0, 2024 0, 595, 0, 0, 0, 58, 0, 628, 0, 0, 2025 351, 351, 351, 0, 0, 0, 0, 0, 226, 0, 2026 0, 0, 354, 0, 49, 49, 0, 0, 0, 351, 2027 0, 0, 354, 0, 354, 114, 114, 0, 0, 224, 2028 58, 0, 354, 58, 577, 0, 354, 700, 0, 178, 2029 0, 1229, 1230, 0, 0, 0, 0, 0, 474, 0, 2030 0, 0, 0, 0, 215, 0, 0, 0, 0, 978, 2031 979, 0, 0, 114, 0, 0, 0, 0, 215, 0, 2032 0, 0, 0, 0, 474, 0, 79, 351, 0, 0, 2033 0, 79, 0, 0, 0, 0, 944, 0, 500, 432, 2034 37, 0, 185, 186, 40, 0, 357, 0, 76, 0, 2035 1216, 41, 42, 0, 37, 0, 185, 186, 40, 0, 2036 0, 0, 43, 261, 714, 41, 42, 0, 0, 976, 2037 0, 349, 0, 49, 114, 0, 43, 601, 354, 602, 2038 0, 0, 0, 114, 0, 0, 46, 47, 0, 0, 2039 0, 912, 0, 412, 0, 0, 0, 0, 49, 49, 2040 46, 47, 0, 414, 0, 0, 0, 0, 0, 0, 2041 700, 0, 0, 0, 0, 215, 0, 0, 0, 0, 2042 700, 0, 351, 49, 628, 225, 0, 1012, 0, 628, 2043 811, 0, 0, 354, 700, 0, 58, 0, 0, 0, 2044 0, 81, 0, 0, 1023, 0, 81, 536, 537, 538, 2045 539, 540, 541, 542, 543, 544, 545, 0, 178, 0, 2046 0, 0, 0, 0, 0, 0, 58, 37, 0, 185, 2047 186, 40, 0, 0, 1100, 0, 0, 1356, 41, 42, 2048 0, 546, 0, 1155, 0, 1358, 1359, 1360, 0, 43, 2049 0, 0, 79, 0, 354, 354, 67, 354, 354, 0, 2050 1167, 0, 0, 0, 1530, 0, 412, 356, 0, 0, 2051 0, 0, 79, 46, 47, 0, 0, 76, 628, 0, 2052 79, 0, 0, 0, 0, 261, 714, 0, 0, 1095, 2053 0, 8, 9, 10, 11, 12, 0, 0, 356, 0, 2054 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2055 0, 1406, 354, 354, 0, 1109, 356, 0, 79, 0, 2056 31, 0, 0, 432, 119, 0, 0, 0, 0, 0, 2057 0, 0, 0, 0, 0, 0, 0, 0, 414, 0, 2058 0, 351, 0, 0, 0, 0, 0, 0, 34, 0, 2059 0, 0, 0, 37, 0, 185, 186, 40, 0, 0, 2060 356, 0, 1386, 0, 41, 42, 0, 81, 0, 0, 2061 0, 0, 0, 0, 0, 43, 215, 0, 0, 0, 2062 1257, 0, 357, 0, 595, 0, 354, 81, 0, 0, 2063 601, 0, 602, 0, 0, 81, 0, 430, 1231, 46, 2064 47, 0, 700, 700, 0, 351, 351, 349, 0, 0, 2065 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 2066 0, 0, 0, 0, 356, 1201, 0, 0, 0, 224, 2067 0, 357, 0, 81, 0, 0, 0, 0, 0, 0, 1790 49, 114, 453, 428, 399, 400, 268, 98, 150, 766, 1791 151, 152, 819, 973, 868, 115, 964, 407, 752, 63, 1792 401, 402, 403, 358, 383, 384, 965, 966, 404, 261, 1793 440, 827, 49, 405, 596, 604, 50, 410, 498, 98, 1794 357, 740, 820, 148, 1070, 153, 830, 1069, 609, 49, 1795 844, 63, 837, 948, 69, 1137, 162, 821, 725, 794, 1796 56, 116, 730, 187, 826, 408, 210, 144, 50, 49, 1797 194, 919, 154, 217, 409, 70, 227, 1187, 31, 342, 1798 112, 815, 178, 220, 399, 400, 69, 155, 281, 1439, 1799 628, 425, 56, 1302, 632, 1379, 669, 407, 123, 818, 1800 401, 402, 403, 1204, 1205, 1181, 114, 70, 404, 816, 1801 817, 475, 477, 405, 114, 1195, 678, 267, 272, 476, 1802 505, 1197, 1443, 1177, 682, 31, 211, 923, 31, 221, 1803 203, 124, 262, 31, 31, 263, 566, 31, 527, 493, 1804 31, 213, 494, 1171, 527, 408, 282, 307, 148, 1178, 1805 411, 150, 145, 151, 152, 162, 114, 345, 77, 519, 1806 1439, 210, 1303, 1169, 1170, 1117, -231, -231, 373, 97, 1807 567, 714, 964, 143, 720, 1196, 107, 107, 1199, 1245, 1808 204, 1198, 965, 966, 913, 167, 187, 187, 153, 476, 1809 77, 471, 949, 1458, 162, 253, 147, 411, 419, 815, 1810 411, 97, 267, 481, 828, 411, 601, 835, 107, 601, 1811 49, 568, 149, 1186, 287, 154, 1443, 162, 97, 527, 1812 667, 1443, 210, 1200, 819, 41, 42, 816, 817, 443, 1813 155, 150, 190, 151, 152, 97, 664, -231, 97, 1484, 1814 307, 1443, 1248, 1139, 439, 107, 156, 1077, 1443, 292, 1815 167, 514, 49, 1016, 820, 182, 169, 830, 172, 98, 1816 272, 1398, 1399, 202, 588, 272, 267, 267, 723, 821, 1817 1249, 63, 114, 1512, 162, 1514, 472, 527, 951, 1080, 1818 170, 991, 441, 327, 665, 656, 1015, 463, 50, 164, 1819 672, 674, 1093, 815, 342, 307, -287, 442, 483, 358, 1820 1468, 609, 1526, 248, 1382, 500, 69, 307, 251, 596, 1821 664, 1003, 56, 671, 596, 804, 357, 97, -119, 676, 1822 -119, 816, 817, 571, -119, 1187, 1178, 70, 148, 1541, 1823 97, 1400, 465, 1398, 1399, 373, -516, 527, 1084, -119, 1824 -119, 114, 734, 1118, 819, 345, 436, 1171, 713, 602, 1825 620, 579, 471, 411, 164, 398, 190, 853, 665, 898, 1826 253, 377, 827, 1119, 625, 735, 556, 557, 625, 1201, 1827 519, 114, 471, 178, 820, 519, 327, 378, 519, 97, 1828 471, 1070, 831, 1116, 1069, 736, 834, 673, 675, 821, 1829 629, 97, 358, 111, 633, 847, 267, 1171, 747, 848, 1830 510, 558, 559, 1409, 41, 42, 187, 851, 436, 357, 1831 77, 854, 986, 373, 1496, 77, 1325, 1169, 1170, 174, 1832 1501, 97, 547, 548, 267, 213, 307, 307, 107, 844, 1833 267, 787, 759, 625, 714, 479, 1326, 472, 849, 1423, 1834 1521, 577, 850, 167, 870, 1528, 642, 578, 342, 1525, 1835 435, 1157, 1159, 1424, 114, 729, 358, 472, 1428, 1429, 1836 547, 1362, 254, 871, 1126, 472, 859, 860, 264, 1536, 1837 447, 849, 267, 357, 742, 1100, 1540, 387, 1187, 330, 1838 267, 598, 625, 877, 49, 1187, 1469, 373, 719, 460, 1839 498, 98, 683, 388, 114, 1244, 547, 97, 578, 390, 1840 1470, 711, 869, 63, 888, 881, 307, 1104, 114, 1135, 1841 1014, 307, 435, 307, 307, 391, 1171, 910, 603, -10, 1842 50, 750, -440, 609, 392, 114, 345, -441, 1016, 996, 1843 582, -467, 411, -467, 804, 523, 1187, 1434, 69, 798, 1844 393, 931, 277, 879, 56, 394, 112, 164, 213, 1236, 1845 -467, 2, 207, 4, 5, 6, 7, 914, 417, 70, 1846 704, 395, 327, 327, 916, 912, 705, 914, 916, 1184, 1847 571, 571, 1184, 915, 952, 190, 77, 279, 307, 1316, 1848 917, 437, 1126, 1081, 1082, 1185, 280, 913, 1308, 625, 1849 345, 445, 549, 714, 620, 1317, 77, 1318, 550, 551, 1850 602, 747, 602, 882, 77, 411, 331, 760, 1360, 1276, 1851 1277, 713, 765, 1319, 1474, 471, 35, 1363, 36, 332, 1852 625, 1474, 804, 1014, 1019, 625, 111, 620, 140, 239, 1853 327, 625, 994, 333, 625, 625, 625, 41, 42, 111, 1854 334, 928, 77, -102, 806, 335, 846, -102, 371, 327, 1855 41, 42, 625, 97, 267, 372, 1087, 603, 1087, 520, 1856 107, 465, 861, 240, 768, 769, 770, 342, 241, 1348, 1857 376, 1027, 1522, 1349, 111, 358, 876, 385, 111, -3, 1858 140, 141, 1408, 389, 114, 41, 42, 907, 596, 41, 1859 42, 1074, 357, 885, 691, 411, 111, 442, 140, 141, 1860 472, 528, 529, 530, 1141, 1112, 411, 41, 42, 397, 1861 625, 933, 620, 764, 327, 726, 1101, 1234, 719, 719, 1862 727, 1238, 1034, 399, 400, 531, 472, 532, 409, 533, 1863 534, 1153, 878, 411, 880, 432, 721, 407, 244, 401, 1864 402, 403, 722, 426, 114, 345, 523, 404, 523, 750, 1865 750, 523, 405, 1156, 523, 601, 845, 500, 1158, 230, 1866 601, 598, 427, 231, 711, 1476, 235, 1477, 237, 814, 1867 713, 603, 964, 213, 450, 246, 775, 776, 777, 778, 1868 1373, -288, 965, 966, 927, 408, -364, 213, 8, 9, 1869 10, 11, 12, 571, 2, 207, 4, 5, 6, 7, 1870 731, 625, 1241, 625, 411, 999, 732, 680, 625, 345, 1871 1161, -393, 602, 570, 1425, 411, 111, 31, 140, 141, 1872 1523, 45, 46, 229, 602, 111, 342, 41, 42, 484, 1873 1436, 461, 746, 706, 462, 714, 41, 42, 747, 77, 1874 8, 9, 10, 11, 12, 34, 37, 892, 804, 504, 1875 40, 253, 329, 747, 292, 864, 911, 41, 42, 35, 1876 894, 36, 163, 806, 1330, 77, 747, 980, 508, 31, 1877 520, 972, 513, 981, 307, 520, 195, 525, 520, 218, 1878 213, 527, 228, 812, 562, 601, 1168, 814, 603, 993, 1879 1182, 45, 46, 63, 563, 705, 625, 34, 554, 555, 1880 1494, 1436, 230, 114, 345, 907, 111, 907, 2, 207, 1881 4, 5, 6, 7, 714, 664, 1232, 41, 42, 114, 1882 910, 564, 578, 711, 691, 1356, 565, 749, 69, 411, 1883 142, 747, 933, 933, 56, 45, 46, 719, 568, 570, 1884 37, 411, 114, 307, 40, 1332, 338, 45, 46, 70, 1885 -437, 41, 42, 952, 1357, 586, 1105, 952, 952, 589, 1886 747, 163, 932, 665, 601, 48, 113, 750, 912, -3, 1887 45, 46, 657, 35, 374, 36, 1359, 43, 1508, 552, 1888 553, 814, 747, 242, 245, 45, 46, 638, 8, 9, 1889 10, 11, 12, 603, 113, 113, 1227, 48, 1364, 345, 1890 163, 658, 1106, 659, 747, 560, 561, 37, 48, 184, 1891 185, 40, 713, 111, 48, 140, 141, 31, 41, 42, 1892 625, 625, 48, 163, 41, 42, 661, 1126, 48, 984, 1893 981, 48, 77, 890, 48, 444, 1121, 253, 329, 411, 1894 307, 230, 897, 235, 186, 34, 899, 662, 113, 113, 1895 107, 666, 45, 46, 1284, 1285, 37, 1287, 1132, 472, 1896 40, 663, 1132, 1426, 1292, 1444, 1294, 41, 42, 1423, 1897 668, 747, 48, 1323, 1083, 48, 911, 442, 1490, 327, 1898 114, 258, 48, 692, 1491, 907, 1546, 749, 693, 411, 1899 907, 695, 578, 718, 1189, 45, 46, 329, 411, 933, 1900 56, 45, 46, 737, 215, 738, 603, 267, 739, 1369, 1901 1370, 743, 1132, 48, 547, 70, 1418, 981, 107, 1398, 1902 1399, 48, 625, 771, 772, 37, 48, 184, 185, 40, 1903 342, 230, 419, 660, 411, 845, 41, 42, 779, 780, 1904 1351, 374, 773, 774, 457, 697, 345, -235, 481, 329, 1905 411, 48, 48, 733, 744, 510, 215, 748, 756, 691, 1906 1380, 807, 266, 873, 1380, 711, 808, 48, 811, -289, 1907 45, 46, 828, 329, 601, 48, 8, 9, 10, 11, 1908 12, 1295, 1296, 1297, 48, 822, 867, 48, 272, 114, 1909 1331, 1333, 1334, 893, 113, -12, -13, 866, 77, 215, 1910 895, 896, 900, 220, 903, 31, 921, 114, -414, 113, 1911 -520, 307, 936, 113, 943, 722, 107, 48, 113, 374, 1912 117, 945, 1404, 956, 130, 625, 131, 132, 133, 114, 1913 63, 48, 48, 34, 950, 41, 42, 957, 48, 958, 1914 959, 960, 961, 1105, 711, 48, 988, 989, 211, 221, 1915 990, 977, 1005, 1006, 911, 1007, 1008, 1009, 1010, 911, 1916 215, 1459, 1079, 213, 1011, 69, 1022, 1421, 160, -402, 1917 -401, 56, 1036, 1058, 625, 625, 1071, 1534, 1094, 906, 1918 644, 1073, 1096, 272, 1097, 1095, 70, 1103, 307, 1106, 1919 1113, 747, 1114, 48, 1115, 1120, 1122, 971, 215, 1123, 1920 1124, 702, 1125, 215, 1128, 1131, 1151, 472, 1174, 1175, 1921 1172, 1173, 1176, 48, 48, 8, 9, 10, 11, 12, 1922 691, 114, 1190, 399, 400, 259, 1191, 1132, 1132, 1132, 1923 48, 1193, 1194, 160, 48, 1105, 407, 1202, 1206, 401, 1924 402, 403, 1189, 441, 31, 643, -290, 404, 56, 1207, 1925 1209, -3, 405, 8, 9, 10, 11, 12, 442, 1214, 1926 664, 48, 1219, 70, 1224, 107, 323, 493, 1222, 77, 1927 1507, 48, 34, 1228, 703, 339, 1233, 922, 267, 1235, 1928 1237, 1106, 31, 1240, 408, 1250, 1246, 107, 215, 48, 1929 1252, 724, 1254, 728, 625, 48, 1256, 48, 1257, 1258, 1930 1262, 1259, 1420, 1260, 1269, 107, 1278, 1279, 665, 37, 1931 34, 175, 176, 40, 932, 1203, 601, 1286, 1307, 114, 1932 41, 42, 45, 46, 37, 430, 175, 176, 40, 434, 1933 1289, 1290, 113, 1105, 1291, 41, 42, 48, 1293, 1301, 1934 1314, 114, 1192, 1320, 1322, 48, 77, 1328, 114, 48, 1935 114, 1324, 114, 48, 1329, 1358, 113, 1335, 113, 323, 1936 472, 372, 1336, 1338, 107, 1132, 1132, 472, 985, 215, 1937 150, 1344, 151, 152, 1345, 1346, 1347, 1297, 1365, 1106, 1938 1354, 1506, 214, 1355, 1366, 1383, 114, 1374, 114, 1375, 1939 1376, 434, 233, 113, 488, 1189, 1392, 107, 113, 114, 1940 1393, 56, 1189, 1460, -403, 1506, 1506, 702, 56, 1396, 1941 1407, 215, 1415, 162, 521, 307, 70, 1411, 472, 1413, 1942 528, 529, 530, 70, 1416, 1417, 160, 1422, 1430, 37, 1943 1506, 175, 176, 40, 214, 1431, 1432, 373, 1433, 1435, 1944 41, 42, 865, 1349, 531, 1029, 532, 113, 533, 1305, 1945 1440, 1445, 1449, 1189, 48, 1451, 1447, 1453, 1455, 56, 1946 587, 1509, 1457, 1462, 593, 48, 376, 48, 1463, 1464, 1947 1517, 1475, 1492, 1485, 70, 1487, 1500, 214, 1493, 1489, 1948 703, 1515, 1516, 626, 1520, 1527, 48, 630, 922, 1529, 1949 339, 918, 1531, 920, 1544, 107, 1545, 457, 1208, 77, 1950 1537, 783, 48, 781, 1130, 784, 77, 113, 782, 785, 1951 1058, 1306, 1495, 1410, 1547, 1368, 48, 107, 113, 48, 1952 113, 1239, 1384, 1478, 107, 1088, 702, 216, 901, 1213, 1953 902, 1221, 215, 922, 1092, 924, 702, 800, 214, 1127, 1954 1035, 872, 938, 1315, 243, 323, 323, 1102, 790, 716, 1955 702, 327, 48, 946, 791, 792, 113, 77, 113, 0, 1956 215, 1367, 113, 0, 0, 215, 0, 0, 1138, 0, 1957 113, 0, 0, 687, 479, 107, 214, 0, 0, 216, 1958 0, 214, 0, 48, 48, 0, 117, 0, 0, 0, 1959 1482, 0, 1482, 0, 0, 0, 499, 48, 0, 703, 1960 0, 0, 0, 1372, 0, 0, 0, 0, 0, 703, 1961 0, 488, 0, 323, 0, 488, 0, 0, 0, 1029, 1962 0, 0, 216, 703, 0, 521, 1482, 521, 1482, 0, 1963 521, 0, 323, 521, 0, 0, 215, 177, 0, 8, 1964 9, 10, 11, 12, 339, 0, 0, 0, 0, 37, 1965 215, 184, 185, 40, 0, 1397, 0, 0, 1405, 0, 1966 41, 42, 0, 0, 0, 0, 214, 644, 31, 0, 1967 0, 0, 0, 1039, 0, 0, 0, 48, 0, 0, 1968 0, 0, 0, 216, 0, 0, 905, 177, 411, 48, 1969 177, 0, 0, 0, 45, 46, 34, 323, 0, 922, 1970 0, 1442, 0, 0, 0, 0, 1446, 906, 802, 0, 1971 0, 0, 0, 1479, 1089, 1483, 0, 0, 0, 0, 1972 0, 216, 0, 0, 0, 0, 216, 0, 0, 0, 1973 0, 0, 643, 0, 1467, 0, 177, 891, 113, 843, 1974 0, 0, 0, 215, 593, 0, 0, 214, 0, 1511, 1975 852, 1513, 66, 118, 702, 702, 0, 0, 0, 922, 1976 922, 48, 0, 0, 214, 0, 0, 0, 0, 0, 1977 48, 644, 48, 0, 0, 0, 0, 0, 0, 113, 1978 0, 0, 0, 0, 66, 0, 0, 0, 0, 214, 1979 0, 0, 0, 1542, 0, 1543, 0, 0, 0, 177, 1980 0, 161, 48, 687, 0, 0, 0, 0, 1550, 1551, 1981 0, 216, 702, 702, 0, 0, 0, 0, 1535, 0, 1982 0, 222, 113, 0, 1535, 0, 0, 703, 703, 0, 1983 0, 0, 0, 0, 0, 1535, 643, 0, 0, 1535, 1984 0, 488, 0, 0, 113, 0, 0, 0, 113, 57, 1985 57, 0, 0, 177, 0, 0, 987, 0, 260, 0, 1986 177, 0, 0, 339, 0, 0, 992, 0, 0, 0, 1987 0, 1039, 0, 0, 0, 75, 0, 0, 0, 0, 1988 1004, 57, 0, 0, 0, 703, 703, 0, 0, 0, 1989 0, 0, 216, 0, 0, 0, 0, 0, 113, 0, 1990 328, 0, 0, 0, 0, 0, 0, 75, 260, 350, 1991 214, 0, 0, 0, 0, 57, 0, 0, 57, 0, 1992 0, 0, 995, 0, 0, 0, 0, 802, 177, 0, 1993 0, 0, 0, 0, 216, 0, 113, 0, 214, 406, 1994 215, 0, 0, 214, 223, 177, 0, 0, 0, 177, 1995 48, 0, 0, 0, 424, 48, 0, 429, 431, 0, 1996 1312, 0, 161, 0, 922, 0, 0, 0, 0, 0, 1997 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 1998 922, 0, 0, 448, 1282, 0, 0, 451, 0, 452, 1999 0, 0, 702, 0, 0, 0, 0, 0, 459, 0, 2000 702, 702, 702, 0, 66, 0, 348, 0, 0, 473, 2001 0, 0, 177, 0, 214, 802, 0, 0, 0, 480, 2002 0, 0, 339, 0, 0, 0, 0, 431, 214, 0, 2003 0, 78, 353, 1313, 0, 0, 0, 0, 687, 0, 2004 0, 37, 0, 184, 185, 40, 0, 0, 499, 113, 2005 922, 922, 41, 42, 0, 216, 0, 0, 0, 0, 2006 488, 1107, 323, 78, 702, 703, 0, 0, 0, 0, 2007 0, 57, 48, 703, 703, 703, 0, 0, 600, 0, 2008 601, 0, 0, 216, 1166, 1167, 45, 46, 216, 0, 2009 0, 0, 0, 260, 0, 0, 0, 594, 0, 0, 2010 224, 57, 0, 622, 0, 0, 449, 0, 0, 0, 2011 0, 0, 0, 113, 113, 113, 627, 0, 843, 0, 2012 627, 214, 0, 260, 0, 0, 215, 75, 0, 0, 2013 0, 0, 75, 0, 0, 0, 0, 703, 0, 0, 2014 0, 0, 1216, 1217, 0, 0, 0, 0, 0, 0, 2015 37, 0, 184, 185, 40, 0, 0, 0, 0, 216, 2016 0, 41, 42, 37, 0, 184, 185, 40, 0, 177, 2017 473, 0, 0, 216, 41, 42, 0, 0, 0, 0, 2018 0, 0, 0, 0, 0, 350, 0, 905, 355, 411, 2019 473, 0, 0, 0, 0, 45, 46, 0, 473, 687, 2020 1505, 177, 411, 0, 0, 0, 0, 0, 45, 46, 2021 0, 0, 0, 0, 0, 0, 698, 177, 0, 431, 2022 0, 215, 0, 0, 0, 0, 223, 0, 0, 0, 2023 0, 177, 0, 0, 712, 0, 66, 0, 0, 0, 2024 0, 802, 48, 48, 431, 0, 0, 0, 431, 0, 2025 0, 113, 113, 535, 536, 537, 538, 539, 540, 541, 2026 542, 543, 544, 0, 0, 0, 216, 0, 0, 0, 2027 0, 0, 0, 0, 0, 0, 0, 260, 350, 0, 2028 0, 0, 348, 78, 0, 0, 0, 545, 78, 113, 2029 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 2030 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 2031 0, 0, 177, 75, 0, 0, 0, 0, 214, 0, 2032 0, 75, 1337, 793, 0, 0, 339, 0, 0, 0, 2033 1339, 1340, 1341, 57, 0, 0, 0, 0, 0, 353, 2034 0, 627, 805, 0, 0, 0, 48, 113, 1107, 0, 2035 0, 0, 0, 0, 824, 0, 113, 353, 0, 75, 2036 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2037 48, 48, 594, 0, 0, 348, 0, 594, 0, 0, 2038 0, 0, 224, 627, 0, 0, 350, 350, 350, 0, 2039 0, 0, 286, 0, 1385, 48, 0, 0, 287, 0, 2040 0, 353, 288, 0, 350, 289, 290, 291, 292, 41, 2041 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2042 0, 0, 698, 0, 0, 8, 9, 10, 11, 12, 2043 0, 0, 0, 473, 0, 295, 0, 379, 0, 348, 2044 1107, 0, 0, 45, 46, 297, 298, 299, 300, 78, 2045 0, 0, 0, 0, 31, 0, 786, 0, 0, 473, 2046 0, 0, 350, 216, 355, 353, 0, 0, 0, 78, 2047 0, 937, 0, 0, 431, 0, 177, 78, 0, 0, 2048 0, 0, 34, 348, 348, 348, 0, 37, 0, 184, 2049 185, 40, 0, 0, 0, 355, 260, 712, 41, 42, 2050 0, 348, 967, 0, 214, 0, 0, 0, 0, 353, 2051 353, 353, 0, 355, 0, 78, 0, 8, 9, 10, 2052 11, 12, 0, 0, 600, 0, 601, 353, 0, 0, 2053 0, 0, 45, 46, 0, 0, 0, 0, 1107, 0, 2054 0, 698, 0, 0, 0, 353, 31, 0, 0, 0, 2055 0, 698, 0, 350, 0, 627, 75, 355, 1002, 348, 2056 627, 805, 0, 0, 0, 698, 0, 0, 0, 1481, 2057 0, 1481, 0, 0, 34, 1013, 0, 0, 0, 37, 2058 0, 0, 75, 40, 0, 353, 0, 0, 0, 0, 2059 41, 42, 0, 0, 0, 0, 0, 0, 0, 214, 2060 0, 80, 0, 0, 0, 1481, 0, 1481, 0, 0, 2061 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2062 353, 355, 0, 0, 45, 46, 66, 0, 87, 0, 2063 413, 0, 0, 80, 323, 0, 0, 421, 0, 0, 2064 0, 0, 0, 0, 0, 0, 0, 0, 627, 216, 2065 348, 0, 0, 0, 0, 260, 712, 0, 348, 1085, 2066 87, 0, 0, 0, 353, 355, 355, 355, 0, 0, 2067 225, 0, 0, 0, 353, 0, 353, 0, 0, 0, 2068 0, 223, 0, 355, 353, 1099, 0, 0, 353, 0, 2069 0, 0, 0, 431, 118, 0, 0, 226, 0, 0, 2070 0, 355, 0, 0, 0, 0, 0, 0, 0, 413, 2071 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 2072 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 2073 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 2074 0, 355, 0, 0, 216, 0, 0, 0, 0, 75, 2075 0, 594, 0, 0, 0, 0, 0, 0, 356, 0, 2076 0, 0, 0, 576, 429, 0, 0, 0, 0, 698, 2077 698, 580, 350, 350, 583, 0, 355, 0, 0, 353, 2078 0, 0, 0, 0, 0, 363, 0, 177, 0, 0, 2079 0, 57, 1188, 0, 0, 206, 2, 207, 4, 5, 2080 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2081 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2082 355, 0, 26, 27, 28, 0, 0, 698, 698, 0, 2083 355, 31, 355, 0, 0, 0, 0, 224, 413, 0, 2084 355, 0, 421, 0, 355, 0, 0, 0, 0, 0, 2085 0, 0, 0, 80, 0, 0, 0, 0, 80, 34, 2086 0, 35, 0, 36, 37, 0, 208, 39, 40, 348, 2087 348, 0, 0, 0, 627, 41, 42, 0, 0, 0, 2088 87, 0, 0, 0, 0, 87, 0, 0, 0, 57, 2089 0, 0, 353, 353, 0, 353, 353, 0, 712, 0, 2090 0, 43, 0, 209, 0, 78, 0, 0, 0, 45, 2091 46, 0, 0, 0, 0, 75, 0, 0, 0, 413, 2092 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2093 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2094 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 2095 353, 353, 225, 0, 31, 0, 0, 177, 0, 260, 2096 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 2097 0, 0, 0, 0, 0, 698, 0, 712, 0, 226, 2098 0, 118, 34, 0, 0, 0, 0, 37, 0, 184, 2099 185, 40, 0, 0, 0, 127, 127, 127, 41, 42, 2100 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 2101 576, 576, 0, 0, 0, 698, 698, 698, 0, 80, 2102 0, 353, 0, 0, 186, 0, 350, 350, 0, 0, 2103 0, 0, 45, 46, 356, 0, 0, 57, 57, 80, 2104 1188, 0, 0, 0, 0, 0, 87, 80, 355, 355, 2105 0, 355, 355, 0, 0, 0, 0, 0, 0, 0, 2106 57, 363, 0, 0, 223, 356, 87, 0, 127, 0, 2107 127, 78, 0, 118, 87, 0, 0, 0, 57, 698, 2108 0, 0, 0, 356, 0, 80, 75, 0, 0, 0, 2109 0, 0, 363, 0, 0, 276, 0, 883, 353, 0, 2110 353, 886, 0, 0, 0, 0, 355, 355, 0, 0, 2111 363, 0, 87, 0, 0, 0, 0, 0, 0, 0, 2112 0, 0, 0, 348, 348, 0, 0, 356, 0, 0, 2113 353, 0, 57, 0, 0, 0, 0, 57, 353, 353, 2114 353, 0, 0, 0, 0, 0, 350, 0, 0, 353, 2115 353, 127, 0, 0, 363, 0, 0, 0, 0, 127, 2116 0, 127, 127, 75, 0, 0, 127, 0, 127, 127, 2117 57, 118, 0, 168, 0, 173, 0, 355, 179, 180, 2118 181, 0, 183, 0, 0, 0, 0, 0, 0, 0, 2119 0, 356, 0, 1188, 0, 0, 0, 234, 0, 0, 2120 1188, 0, 353, 0, 0, 0, 0, 0, 0, 249, 2121 250, 0, 0, 0, 125, 128, 129, 0, 363, 0, 2122 224, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2123 12, 0, 0, 576, 0, 356, 356, 356, 127, 0, 2124 0, 0, 78, 348, 0, 0, 0, 0, 0, 0, 2125 0, 1188, 0, 356, 355, 31, 355, 0, 1530, 0, 2126 0, 0, 363, 363, 363, 0, 0, 0, 57, 353, 2127 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2128 363, 0, 80, 34, 0, 0, 355, 255, 37, 256, 2129 57, 0, 40, 0, 355, 355, 355, 57, 363, 41, 2130 42, 0, 0, 0, 0, 355, 355, 0, 80, 87, 2131 0, 356, 0, 0, 0, 0, 75, 0, 0, 78, 2132 0, 0, 0, 75, 0, 718, 0, 0, 0, 0, 2133 0, 0, 0, 45, 46, 87, 0, 0, 363, 8, 2134 9, 10, 11, 12, 0, 0, 356, 0, 57, 0, 2135 0, 413, 0, 0, 0, 0, 0, 0, 355, 0, 2136 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2137 396, 0, 0, 363, 75, 0, 0, 0, 0, 0, 2138 415, 416, 0, 0, 0, 420, 0, 422, 423, 0, 2139 356, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2140 356, 37, 356, 184, 185, 40, 0, 225, 0, 0, 2141 356, 0, 41, 42, 356, 0, 0, 363, 0, 8, 2142 9, 10, 11, 12, 0, 355, 0, 363, 1142, 363, 2143 0, 0, 0, 0, 226, 0, 0, 363, 905, 0, 2144 411, 363, 0, 0, 0, 1154, 45, 46, 31, 0, 2145 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2146 0, 0, 0, 0, 591, 0, 599, 0, 0, 0, 2147 0, 0, 78, 0, 0, 80, 34, 623, 624, 78, 2148 31, 37, 0, 184, 185, 40, 0, 0, 0, 0, 2149 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2150 0, 0, 87, 0, 0, 356, 0, 0, 34, 0, 2151 0, 0, 0, 37, 0, 184, 185, 40, 1505, 0, 2152 411, 0, 0, 413, 41, 42, 45, 46, 0, 0, 2153 78, 0, 363, 0, 0, 0, 0, 0, 0, 0, 2154 0, 0, 0, 127, 127, 0, 0, 0, 0, 0, 2155 266, 0, 0, 0, 0, 0, 0, 0, 45, 46, 2156 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 2157 0, 0, 127, 0, 0, 127, 127, 0, 127, 0, 2158 127, 127, 0, 0, 0, 127, 127, 1, 2, 207, 2159 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2160 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2161 24, 25, -291, 0, 26, 27, 28, 29, 356, 356, 2162 30, 356, 356, 31, 0, 0, 0, 0, 0, 0, 2068 2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069 0, 76, 0, 0, 0, 0, 0, 0, 58, 0, 2070 700, 700, 0, 354, 0, 354, 0, 0, 356, 356, 2071 356, 0, 0, 0, 0, 357, 0, 0, 0, 0, 2072 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, 2073 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, 2074 349, 0, 0, 0, 88, 356, 354, 354, 354, 628, 2075 0, 0, 0, 0, 0, 0, 79, 354, 354, 0, 2076 0, 1503, 0, 1507, 0, 0, 0, 0, 0, 0, 2077 1320, 76, 0, 0, 714, 178, 88, 0, 0, 357, 2078 0, 0, 79, 0, 0, 356, 0, 0, 0, 0, 2079 8, 9, 10, 11, 12, 0, 0, 0, 1536, 0, 2080 1538, 0, 0, 0, 349, 215, 0, 0, 0, 0, 2081 0, 0, 354, 0, 227, 0, 0, 1299, 0, 31, 2082 0, 0, 356, 357, 357, 357, 0, 0, 0, 0, 2083 0, 0, 0, 0, 0, 261, 0, 0, 0, 67, 2084 0, 0, 357, 1567, 0, 1568, 0, 34, 349, 349, 2085 349, 700, 37, 714, 185, 186, 40, 119, 1575, 1576, 2086 357, 0, 0, 41, 42, 0, 0, 349, 356, 0, 2087 0, 81, 0, 0, 43, 0, 0, 0, 356, 0, 2088 356, 0, 354, 0, 0, 225, 700, 0, 356, 912, 2089 0, 412, 356, 0, 700, 700, 700, 81, 46, 47, 2090 357, 0, 364, 215, 0, 351, 351, 0, 0, 0, 2091 0, 0, 0, 0, 8, 9, 10, 11, 12, 1201, 2092 0, 0, 0, 0, 0, 349, 0, 0, 0, 0, 2093 0, 76, 0, 0, 0, 0, 0, 357, 76, 0, 2094 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2095 0, 178, 119, 0, 79, 0, 0, 0, 0, 0, 2096 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2097 0, 34, 0, 0, 0, 0, 37, 0, 185, 186, 2098 40, 0, 0, 357, 356, 0, 0, 41, 42, 0, 2099 0, 76, 0, 357, 0, 357, 0, 88, 43, 0, 2100 226, 0, 88, 357, 0, 0, 0, 357, 0, 0, 2101 0, 0, 0, 1530, 0, 412, 0, 0, 0, 0, 2102 349, 0, 46, 47, 0, 0, 0, 0, 349, 0, 2103 351, 0, 0, 0, 0, 0, 0, 0, 0, 356, 2104 0, 169, 0, 174, 0, 0, 180, 181, 182, 0, 2105 184, 0, 0, 0, 0, 119, 8, 9, 10, 11, 2106 12, 0, 0, 0, 0, 235, 0, 0, 0, 81, 2107 0, 0, 0, 0, 0, 0, 0, 250, 251, 1201, 2108 0, 0, 0, 0, 0, 31, 1201, 8, 9, 10, 2109 11, 12, 0, 0, 58, 0, 227, 0, 0, 357, 2110 356, 356, 0, 356, 356, 0, 0, 0, 0, 0, 2111 0, 0, 0, 34, 0, 0, 31, 0, 37, 0, 2112 185, 186, 40, 79, 0, 0, 0, 0, 0, 41, 2113 42, 0, 0, 0, 0, 0, 0, 0, 0, 1201, 2114 43, 0, 0, 0, 34, 0, 1555, 0, 0, 37, 2115 0, 185, 186, 40, 357, 187, 0, 0, 356, 356, 2116 41, 42, 58, 88, 46, 47, 0, 0, 0, 0, 2117 0, 43, 0, 8, 9, 10, 11, 12, 364, 349, 2118 0, 0, 0, 88, 0, 0, 267, 0, 0, 0, 2119 0, 88, 0, 0, 0, 46, 47, 0, 0, 0, 2120 0, 0, 31, 0, 8, 9, 10, 11, 12, 364, 2121 0, 0, 0, 0, 0, 357, 357, 0, 357, 357, 2122 0, 0, 0, 0, 0, 0, 0, 364, 0, 88, 2123 34, 0, 356, 31, 0, 37, 0, 0, 81, 40, 2124 0, 0, 0, 349, 349, 0, 41, 42, 0, 0, 2125 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2126 0, 34, 0, 58, 0, 0, 37, 0, 0, 0, 2127 40, 364, 44, 357, 357, 225, 0, 41, 42, 0, 2128 0, 46, 47, 0, 0, 0, 0, 0, 43, 0, 2129 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 2130 0, 0, 0, 720, 0, 0, 0, 0, 0, 356, 2131 0, 356, 46, 47, 8, 9, 10, 11, 12, 13, 2164 0, 80, 0, 0, 0, 363, 363, 0, 363, 363, 2165 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2166 0, 0, -291, 0, 0, 0, 1012, 0, 87, 8, 2167 9, 10, 11, 12, 0, 0, 356, 356, 0, 0, 2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 44, 283, 284, 31, 285, 2170 0, 45, 46, 363, 363, 0, 0, 0, 0, 0, 2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2172 0, 0, 0, 127, 127, 286, 34, 0, 0, 0, 2173 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, 2174 291, 292, 41, 42, 0, 293, 294, 356, 0, 0, 2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2176 0, 0, 795, 796, 0, 0, 0, 0, 295, 0, 2177 379, 0, 0, 0, 363, 0, 344, 46, 297, 298, 2178 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2179 225, 829, 0, 0, 832, 833, 0, 836, 0, 838, 2180 839, 0, 0, 0, 840, 841, 0, 0, 0, 0, 2181 0, 0, 80, 0, 0, 0, 0, 226, 0, 925, 2182 0, 926, 0, 0, 356, 0, 356, 0, 929, 930, 2183 0, 0, 0, 935, 0, 0, 0, 0, 0, 87, 2184 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 2185 944, 363, 0, 363, 0, 0, 356, 0, 0, 0, 2186 0, 0, 0, 0, 356, 356, 356, 0, 0, 0, 2187 0, 0, 0, 0, 0, 356, 356, 0, 978, 0, 2188 127, 0, 0, 363, 0, 127, 0, 0, 0, 80, 2189 0, 363, 363, 363, 0, 0, 0, 0, 0, 0, 2190 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2191 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 166, 0, 969, 970, 0, 0, 0, 0, 0, 0, 2195 0, 0, 0, 0, 0, 363, 0, 219, 0, 0, 2196 1162, 0, 0, 8, 9, 10, 11, 12, 0, 0, 2197 0, 0, 0, 0, 0, 0, 0, 1023, 1024, 1025, 2198 1026, 0, 1028, 0, 0, 0, 0, 0, 0, 0, 2199 283, 284, 31, 285, 0, 356, 0, 1072, 0, 0, 2200 0, 0, 0, 0, 0, 166, 0, 0, 0, 273, 2201 0, 1078, 0, 0, 0, 0, 0, 0, 0, 286, 2202 34, 0, 363, 0, 0, 287, 0, 0, 0, 288, 2203 0, 0, 289, 290, 291, 292, 41, 42, 166, 293, 2204 294, 0, 80, 0, 0, 0, 127, 0, 369, 80, 2205 0, 1098, 375, 0, 0, 0, 0, 0, 0, 0, 2206 0, 0, 295, 0, 379, 0, 0, 0, 0, 87, 2207 1163, 46, 297, 298, 299, 300, 87, 8, 9, 10, 2208 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2209 21, 22, 23, 24, 25, 0, 1129, 26, 27, 28, 2210 80, 166, 1136, 0, 1090, 0, 31, 1140, 0, 0, 2211 0, 0, 1144, 219, 1145, 0, 0, 0, 1147, 0, 2212 1148, 1149, 0, 0, 1152, 0, 0, 87, 0, 0, 2213 0, 166, 0, 1164, 34, 0, 0, 0, 0, 0, 2214 0, 208, 39, 0, 0, 0, 0, 0, 0, 0, 2215 0, 1179, 1180, 0, 0, 0, 375, 0, 0, 0, 2216 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 2217 0, 0, 0, 0, 0, 127, 0, 0, 1210, 0, 2218 0, 1212, 0, 0, 45, 46, 524, 0, 0, 0, 2219 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 2220 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2221 0, 0, 0, 0, 232, 0, 236, 0, 238, 0, 2222 0, 0, 0, 0, 1226, 247, 0, 0, 0, 0, 2223 1230, 1231, 0, 0, 0, 0, 597, 0, 0, 0, 2224 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, 2225 1247, 0, 0, 1251, 0, 0, 212, 1253, 236, 238, 2226 247, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 2227 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2228 0, 0, 0, 1268, 0, 1270, 1271, 1272, 1273, 0, 2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2230 0, 1280, 0, 1281, 0, 0, 0, 173, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 166, 166, 0, 2232 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 2233 0, 0, 0, 0, 0, 0, 1309, 1310, 0, 0, 2234 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 212, 0, 236, 238, 247, 0, 0, 0, 0, 0, 2237 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 0, 166, 1342, 1343, 0, 0, 2239 0, 0, 0, 0, 1304, 0, 1353, 524, 212, 524, 2240 0, 0, 524, 212, 166, 524, 0, 0, 0, 0, 2241 0, 0, 0, 0, 0, 0, 0, 369, 497, 0, 2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2243 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2132 2244 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2133 24, 25, 592, 0, 600, 364, 0, 0, 0, 0, 2134 0, 0, 0, 31, 356, 624, 625, 357, 0, 0, 2135 0, 0, 356, 356, 356, 0, 0, 0, 0, 0, 2136 0, 0, 0, 356, 356, 0, 0, 0, 0, 0, 2137 0, 34, 0, 0, 0, 0, 0, 79, 0, 364, 2138 364, 364, 0, 0, 0, 0, 0, 0, 0, 0, 2139 226, 0, 0, 0, 0, 0, 0, 0, 364, 0, 2140 284, 285, 0, 286, 0, 0, 0, 0, 0, 0, 2141 0, 0, 81, 0, 58, 58, 364, 0, 356, 0, 2142 0, 0, 0, 0, 357, 0, 357, 88, 0, 287, 2143 0, 0, 0, 0, 0, 288, 0, 58, 0, 289, 2144 0, 0, 290, 291, 292, 293, 41, 42, 0, 294, 2145 295, 0, 0, 88, 0, 58, 364, 43, 0, 357, 2146 0, 0, 0, 0, 0, 0, 0, 357, 357, 357, 2147 0, 0, 296, 0, 380, 0, 0, 381, 357, 357, 2148 0, 46, 47, 298, 299, 300, 301, 0, 356, 0, 2149 0, 0, 81, 364, 0, 0, 0, 0, 0, 0, 2150 0, 0, 0, 349, 349, 0, 0, 0, 0, 0, 2151 0, 0, 58, 0, 0, 0, 0, 58, 0, 0, 2245 24, 25, -291, 0, 26, 27, 28, 1388, 0, 1389, 2246 1390, 1391, 0, 31, 0, 0, 212, 0, 0, 166, 2247 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 2248 1406, 369, 0, 0, 0, 810, 0, 0, 212, 0, 2249 0, 34, 0, 236, 238, 0, 37, 0, 336, 337, 2250 40, 247, -291, 0, 0, 1427, 0, 41, 42, 0, 2251 0, 597, 0, 0, 321, 0, 597, 0, 0, 0, 2252 0, 0, 0, 0, 346, 369, 369, 369, 0, 157, 2253 0, 0, 0, 634, 0, 338, 382, 382, 0, 0, 2254 0, 45, 46, 369, 212, 0, 0, 0, 1465, 1466, 2152 2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153 0, 0, 0, 357, 0, 0, 0, 79, 0, 364, 2154 0, 0, 0, 0, 79, 0, 0, 0, 0, 364, 2155 58, 364, 0, 0, 0, 0, 227, 0, 0, 364, 2156 0, 0, 0, 364, 0, 8, 9, 10, 11, 12, 2256 0, 1471, 212, 0, 0, 0, 0, 212, 1471, 212, 2257 283, 284, 0, 285, 0, 524, 0, 252, 0, 0, 2258 0, 0, 0, 0, 0, 0, 212, 257, 0, 212, 2259 212, 0, 0, 0, 0, 0, 0, 212, 0, 286, 2260 1504, 369, 0, 934, 1510, 287, 0, 321, 0, 288, 2261 0, 212, 289, 290, 291, 292, 41, 42, 212, 293, 2262 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2263 0, 478, 1532, 0, 1533, 0, 715, 0, 0, 0, 2264 0, 0, 295, 157, 379, 0, 0, 380, 0, 0, 2265 45, 46, 297, 298, 299, 300, 0, 386, 0, 0, 2266 0, 0, 1548, 1549, 0, 0, 0, 0, 0, 0, 2267 1552, 1553, 0, 0, 0, 0, 0, 0, 0, 0, 2268 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269 0, 0, 369, 0, 433, 0, 621, 0, 0, 0, 2270 369, 0, 0, 438, 0, 0, 0, 0, 0, 0, 2271 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 2272 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2273 0, 0, 212, 0, 0, 0, 0, 0, 464, 0, 2274 0, 0, 0, 474, 0, 0, 0, 382, 0, 0, 2275 0, 0, 0, 286, 0, 0, 482, 0, 0, 287, 2276 212, 0, 492, 288, 496, 212, 289, 290, 291, 292, 2277 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2278 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 2279 0, 0, 0, 0, 0, 715, 295, 0, 379, 0, 2280 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2281 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2282 0, 0, 0, 585, 0, 0, 0, 0, 590, 0, 2283 0, 0, 0, 0, 166, 0, 212, 0, 0, 0, 2284 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 2285 212, 0, 0, 0, 0, 0, 0, 635, 0, 0, 2286 0, 636, 637, 0, 639, 0, 0, 0, 0, 0, 2287 497, 650, 651, 0, 652, 653, 0, 654, 0, 655, 2288 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2289 597, 0, 0, 758, 0, 0, 585, 0, 741, 0, 2290 0, 741, 0, 0, 670, 0, 0, 0, 0, 0, 2291 0, 369, 369, 767, 0, 0, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 681, 2293 0, 212, 0, 0, 0, 788, 0, 0, 0, 0, 2294 0, 0, 0, 212, 0, 797, 0, 0, 0, 0, 2295 0, 0, 346, 0, 0, 707, 0, 758, 0, 0, 2296 0, 710, 212, 0, 0, 0, 464, 0, 0, 0, 2297 0, 524, 0, 0, 0, 0, 206, 2, 207, 4, 2298 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2299 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2300 25, 0, 745, 26, 27, 28, 862, 0, 0, 0, 2301 0, 0, 31, 0, 382, 0, 0, 763, 0, 0, 2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2303 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 2304 34, 0, 35, 0, 36, 0, 0, 208, 39, 0, 2305 0, 0, 0, 283, 284, 789, 285, 0, 0, 0, 2306 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 2307 0, 801, 0, 0, 0, 212, 0, 809, 0, 219, 2308 0, 0, 286, 0, 209, 0, 823, 0, 287, 0, 2309 45, 46, 288, 0, 0, 289, 290, 291, 292, 41, 2310 42, 0, 293, 294, 0, 212, 0, 0, 0, 0, 2311 0, 0, 758, 0, 963, 0, 715, 0, 0, 341, 2312 364, 0, 0, 0, 974, 295, 863, 379, 0, 0, 2313 982, 0, 0, 45, 46, 297, 298, 299, 300, 0, 2314 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2315 0, 212, 0, 414, 0, 0, 0, 0, 0, 0, 2316 414, 0, 809, 0, 0, 369, 369, 0, 0, 0, 2317 904, 0, 1000, 1001, 219, 0, 346, 0, 0, 0, 2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2319 346, 509, 512, 0, 0, 0, 0, 0, 0, 515, 2320 516, 252, 0, 0, 0, 0, 0, 0, 0, 0, 2321 0, 941, 942, 509, 509, 0, 0, 0, 0, 0, 2322 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2323 1031, 0, 414, 0, 382, 0, 0, 212, 0, 0, 2324 0, 0, 0, 0, 979, 0, 0, 0, 0, 983, 2325 0, 509, 8, 9, 10, 11, 12, 13, 14, 15, 2326 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2327 0, 346, 26, 27, 28, 0, 0, 0, 0, 0, 2328 0, 31, 684, 0, 0, 369, 414, 509, 0, 0, 2329 0, 0, 0, 0, 414, 581, 0, 414, 584, 0, 2330 0, 0, 0, 0, 0, 0, 0, 0, 364, 34, 2331 321, 0, 613, 1017, 0, 0, 38, 39, 0, 0, 2332 1018, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2333 0, 631, 0, 1020, 341, 1021, 0, 0, 382, 0, 2334 0, 524, 0, 524, 974, 0, 0, 0, 741, 1033, 2335 0, 0, 0, 685, 0, 1037, 0, 686, 0, 45, 2336 46, 414, 0, 0, 0, 414, 0, 1075, 0, 1150, 2337 1076, 0, 0, 0, 0, 0, 0, 524, 0, 524, 2338 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2339 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 2340 0, 0, 382, 0, 1183, 0, 166, 0, 0, 0, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 2342 974, 212, 8, 9, 10, 11, 12, 13, 14, 15, 2343 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2344 1215, 0, 414, 0, 0, 364, 0, 590, 0, 0, 2345 0, 31, 0, 0, 0, 509, 509, 509, 509, 509, 2346 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2347 509, 509, 509, 0, 0, 0, 0, 283, 284, 34, 2348 285, 0, 1146, 0, 414, 0, 0, 0, 341, 364, 2349 0, 0, 0, 0, 0, 974, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2351 0, 0, 287, 862, 0, 0, 288, 0, 0, 289, 2352 290, 291, 292, 41, 42, 0, 293, 294, 1266, 1267, 2353 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 2354 526, 0, 0, 0, 0, 0, 1211, 0, 0, 295, 2355 0, 379, 803, 364, 971, 0, 0, 45, 46, 297, 2356 298, 299, 300, 613, 0, 613, 613, 0, 0, 0, 2357 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 2358 1223, 0, 842, 364, 0, 1225, 0, 0, 364, 0, 2359 0, 0, 0, 1229, 0, 0, 0, 364, 364, 364, 2360 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 2361 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 2362 414, 884, 0, 0, 414, 887, 1255, 0, 0, 0, 2363 0, 889, 0, 0, 0, 0, 0, 0, 1263, 0, 2364 0, 1264, 0, 1265, 0, 0, 0, 0, 0, 0, 2365 414, 0, 0, 0, 0, 0, 0, 1274, 1275, 0, 2366 0, 0, 509, 0, 0, 0, 0, 0, 212, 1371, 2367 0, 0, 741, 364, 613, 0, 0, 0, 0, 1288, 2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2369 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 2370 0, 0, 0, 0, 0, 0, 0, 341, 364, 0, 2371 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 1327, 0, 0, 0, 2373 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2374 17, 18, 19, 20, 21, 22, 23, 24, 25, -291, 2375 0, 26, 27, 28, 0, 0, 414, 0, 0, 0, 2376 31, 0, 0, 0, 364, 0, 0, 0, 0, 0, 2377 0, 803, 364, 0, 0, 613, 0, 613, 0, 0, 2378 0, 0, 0, 0, 0, 0, 0, 613, 34, 0, 2379 0, 0, 0, 37, 0, 336, 337, 40, 0, -291, 2380 0, 1377, 0, 1378, 41, 42, 0, 0, 0, 0, 2381 0, 0, 509, 0, 0, 1386, 0, 1387, 0, 0, 2382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2383 0, 0, 338, 0, 1394, 0, 0, 0, 45, 46, 2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2385 1412, 1414, 0, 0, 0, 0, 0, 509, 0, 803, 2386 0, 1419, 0, 0, 1229, 0, 341, 364, 414, 0, 2387 414, 0, 0, 0, 414, 0, 0, 0, 0, 0, 2388 0, 0, 321, 0, 0, 1441, 0, 0, 0, 0, 2389 0, 0, 509, 0, 1448, 613, 613, 1450, 0, 1452, 2390 1454, 1456, 0, 0, 0, 509, 8, 9, 10, 11, 2391 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2392 22, 23, 24, 25, -291, 0, 0, 0, 0, 0, 2393 414, 0, 0, 0, 0, 31, 0, 0, 0, 1486, 2394 0, 1488, 0, 1229, 0, 0, 509, 0, 0, 0, 2395 0, 414, 1143, 0, 0, 0, 0, 0, 1499, 0, 2396 0, 0, 364, 34, 0, 0, 0, 0, 414, 1155, 2397 0, 613, 613, 1160, -291, 0, 0, 0, 0, 0, 2398 0, 0, 0, 364, 364, 0, 0, 0, 0, 0, 2399 0, 0, 0, 0, 0, 0, 0, 1, 2, 207, 2400 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2401 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2402 24, 25, 0, 509, 26, 27, 28, 29, 0, 0, 2403 30, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2404 0, 0, 0, 0, 0, 0, 414, 0, 414, 0, 2405 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2406 286, 34, 613, 35, 0, 36, 287, 0, 38, 39, 2407 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2408 293, 294, 0, 509, 509, 803, 414, 1243, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 295, 0, 1055, 0, 0, 0, 364, 2411 0, 45, 46, 297, 298, 299, 300, 0, 0, 0, 2412 0, 0, 0, 0, 0, 0, -126, 0, 1, 2, 2413 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2157 2414 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2158 23, 24, 25, -295, 0, 26, 27, 28, 0, 0, 2159 0, 0, 213, 0, 31, 0, 0, 79, 0, 0, 2160 0, 0, 233, 357, 237, 0, 239, 0, 0, 0, 2161 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 2162 0, 0, 34, 0, 0, 88, 0, 37, 349, 337, 2163 338, 40, 0, -295, 0, 0, 0, 0, 41, 42, 2164 0, 0, 0, 0, 213, 0, 237, 239, 248, 43, 2165 0, 0, 81, 58, 0, 364, 0, 0, 0, 81, 2166 0, 0, 0, 0, 635, 0, 339, 0, 0, 128, 2167 128, 128, 0, 46, 47, 0, 0, 58, 0, 0, 2168 0, 0, 284, 285, 58, 286, 0, 213, 932, 0, 2169 933, 0, 0, 0, 0, 0, 0, 936, 937, 0, 2170 0, 0, 942, 0, 0, 0, 0, 0, 0, 0, 2171 364, 287, 81, 167, 947, 0, 0, 288, 0, 951, 2172 0, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2173 220, 294, 295, 0, 0, 0, 0, 58, 0, 43, 2174 0, 0, 0, 128, 0, 128, 0, 0, 213, 987, 2175 237, 239, 248, 0, 296, 0, 380, 0, 0, 0, 2176 0, 0, 792, 46, 47, 298, 299, 300, 301, 0, 2177 277, 364, 364, 0, 364, 364, 0, 0, 167, 0, 2178 0, 0, 274, 0, 0, 0, 213, 0, 0, 0, 2179 0, 213, 0, 0, 88, 0, 0, 0, 508, 0, 2180 510, 513, 0, 0, 0, 0, 498, 0, 516, 517, 2181 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 2182 0, 370, 510, 510, 0, 376, 128, 0, 0, 364, 2183 364, 0, 0, 0, 128, 0, 128, 128, 0, 0, 2184 0, 128, 0, 128, 128, 0, 0, 0, 0, 0, 2185 1033, 1034, 1035, 1036, 213, 1038, 0, 0, 0, 0, 2186 510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2187 0, 1082, 0, 0, 167, 0, 213, 0, 0, 0, 2188 0, 237, 239, 0, 0, 1088, 220, 0, 0, 248, 2189 0, 0, 0, 0, 0, 0, 510, 0, 0, 0, 2190 0, 0, 0, 364, 167, 0, 0, 0, 0, 0, 2191 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 2192 0, 0, 0, 0, 0, 1108, 0, 0, 0, 376, 2193 0, 0, 213, 0, 0, 0, 167, 0, 0, 0, 2194 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 2195 213, 0, 0, 0, 0, 213, 0, 213, 0, 525, 2196 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 2197 0, 167, 1141, 0, 213, 0, 0, 213, 213, 1149, 2198 364, 0, 364, 0, 1153, 213, 0, 0, 0, 1157, 2199 0, 1158, 0, 0, 0, 1160, 0, 1161, 1162, 213, 2200 0, 1165, 0, 0, 0, 0, 213, 0, 0, 598, 2201 1177, 0, 0, 0, 622, 364, 0, 0, 0, 0, 2202 0, 0, 0, 364, 364, 364, 0, 0, 1192, 1193, 2203 0, 0, 0, 0, 364, 364, 0, 0, 0, 0, 2204 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 2205 0, 0, 0, 0, 0, 1223, 0, 0, 1225, 0, 2206 0, 0, 0, 0, 510, 510, 510, 510, 510, 510, 2207 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, 2208 510, 510, 0, 0, 0, 0, 0, 0, 0, 364, 2209 167, 167, 0, 0, 0, 0, 0, 370, 0, 0, 2210 0, 1239, 0, 0, 0, 0, 0, 1243, 1244, 0, 2211 0, 0, 0, 0, 0, 0, 0, 0, 525, 1255, 2212 213, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 2213 0, 0, 1266, 0, 1267, 0, 0, 1269, 0, 0, 2214 0, 0, 0, 0, 0, 0, 717, 0, 213, 0, 2215 1277, 0, 0, 213, 0, 0, 0, 0, 167, 364, 2216 0, 0, 0, 1284, 0, 1286, 1287, 1288, 1289, 0, 2217 525, 0, 525, 0, 0, 525, 0, 167, 525, 0, 2218 0, 1296, 0, 1297, 0, 0, 0, 174, 0, 0, 2219 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2220 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 2221 0, 510, 0, 0, 0, 88, 1325, 1326, 128, 128, 2222 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 2224 0, 0, 167, 0, 0, 0, 0, 128, 0, 0, 2225 128, 128, 0, 128, 370, 128, 128, 0, 816, 498, 2226 128, 128, 0, 0, 0, 0, 0, 0, 88, 1361, 2227 1362, 0, 0, 0, 510, 0, 0, 0, 0, 1372, 2228 0, 0, 0, 0, 598, 0, 0, 0, 0, 598, 2229 0, 0, 0, 0, 0, 0, 0, 0, 370, 370, 2230 370, 0, 0, 0, 0, 0, 510, 0, 0, 1022, 2231 0, 0, 8, 9, 10, 11, 12, 370, 0, 0, 2232 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2233 1404, 0, 158, 0, 0, 0, 213, 0, 0, 284, 2234 285, 31, 286, 1409, 0, 1410, 1411, 1412, 0, 525, 2235 0, 0, 0, 0, 0, 213, 0, 1416, 0, 0, 2236 0, 0, 0, 0, 0, 0, 1427, 0, 287, 34, 2237 0, 0, 0, 0, 288, 370, 0, 941, 289, 0, 2238 253, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2239 258, 0, 0, 1450, 0, 0, 43, 0, 0, 0, 2240 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 2241 0, 296, 717, 380, 0, 0, 0, 0, 0, 0, 2242 345, 47, 298, 299, 300, 301, 0, 510, 0, 0, 2243 0, 0, 0, 0, 0, 0, 0, 0, 1489, 1490, 2244 0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 2245 0, 1495, 0, 0, 0, 0, 0, 0, 1495, 0, 2246 387, 0, 0, 0, 0, 0, 0, 0, 0, 213, 2247 370, 0, 510, 0, 622, 0, 0, 0, 370, 0, 2248 0, 0, 0, 419, 0, 0, 0, 0, 0, 0, 2249 0, 1529, 0, 0, 0, 1535, 0, 434, 0, 0, 2250 0, 213, 0, 0, 0, 0, 439, 0, 0, 0, 2251 510, 0, 0, 0, 0, 0, 447, 0, 0, 0, 2252 0, 0, 0, 510, 1557, 0, 1558, 0, 0, 0, 2253 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 2254 0, 465, 0, 0, 0, 0, 475, 0, 213, 0, 2255 0, 0, 0, 0, 1573, 1574, 0, 0, 0, 483, 2256 0, 128, 1577, 1578, 510, 493, 128, 497, 0, 0, 2257 0, 0, 0, 0, 717, 0, 0, 0, 0, 0, 2258 0, 0, 0, 0, 527, 0, 0, 0, 0, 525, 2415 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2416 0, 30, 283, 284, 31, 1040, 1041, 0, 1042, 0, 2417 341, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2418 0, 0, 1051, 0, 0, 0, 1052, 1053, 364, 33, 2419 0, 286, 34, 0, 35, 0, 36, 1054, 0, 38, 2420 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2421 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2259 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2260 0, 0, 0, 0, 284, 285, 0, 286, 0, 0, 2261 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 2262 213, 0, 0, 0, 0, 0, 586, 0, 0, 370, 2263 0, 591, 0, 287, 213, 0, 0, 0, 0, 288, 2264 0, 510, 0, 289, 0, 0, 290, 291, 292, 293, 2265 41, 42, 0, 294, 295, 0, 0, 0, 0, 0, 2266 636, 43, 0, 0, 637, 638, 0, 640, 0, 0, 2267 0, 0, 598, 0, 652, 653, 507, 654, 655, 0, 2268 656, 0, 657, 0, 0, 46, 47, 298, 299, 300, 2269 301, 0, 0, 370, 370, 0, 0, 0, 0, 586, 2270 0, 0, 0, 0, 510, 510, 0, 672, 0, 0, 2423 0, 0, 0, 0, 295, 0, 1055, 364, 364, 172, 2424 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2425 0, 0, 1056, 0, 0, 0, 0, -126, 0, 0, 2426 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2427 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2428 19, 20, 21, 22, 23, 24, 25, 0, 509, 26, 2429 27, 28, 29, 0, 0, 30, 283, 284, 31, 285, 2430 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 2271 2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 2273 128, 0, 683, 0, 0, 0, 0, 0, 0, 0, 2432 0, 0, 0, 0, 0, 286, 34, 0, 35, 0, 2433 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2434 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2435 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2436 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2437 44, 0, 0, 0, 509, 509, 45, 46, 297, 298, 2438 299, 300, 0, 2, 207, 4, 5, 6, 7, 8, 2439 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2440 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2441 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2442 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2443 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2444 25, -292, 0, 0, 414, 286, 34, 0, 35, 0, 2445 36, 287, 31, 38, 39, 288, 0, 0, 289, 290, 2446 291, 292, 41, 42, 0, 293, 294, 0, 414, 414, 2274 2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2275 0, 0, 0, 525, 0, 0, 0, 0, 709, 0, 2276 0, 0, 0, 0, 712, 0, 0, -520, 0, 465, 2277 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2448 34, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2449 343, -292, 0, 414, 0, 757, 344, 46, 297, 298, 2450 299, 300, 2, 207, 4, 5, 6, 7, 8, 9, 2451 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2452 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2453 28, 0, 0, 0, 0, 283, 284, 31, 285, 8, 2454 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2455 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2456 27, 28, 0, 0, 286, 34, 0, 35, 31, 36, 2457 287, 0, 38, 39, 288, 0, 0, 289, 290, 291, 2458 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2459 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2460 0, 111, 0, 38, 39, 0, 0, 295, 0, 962, 2461 0, 0, 41, 42, 757, 344, 46, 297, 298, 299, 2462 300, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2278 2463 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2279 2464 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2280 29, 0, 0, 30, 0, 749, 31, 32, 0, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2282 768, 0, 717, 0, 213, 0, 0, 0, 0, 0, 2283 0, 33, 0, 0, 34, 0, 35, 0, 36, 37, 2284 0, 38, 39, 40, 0, 0, 0, 0, 0, 0, 2285 41, 42, 0, 0, 0, 0, 0, 0, 795, 0, 2286 0, 43, 128, 0, 220, 0, 0, 805, 0, 342, 2287 365, 0, 0, 0, 807, 0, 44, 0, 45, 0, 2288 815, 0, 0, 0, 0, 46, 47, 0, 0, 829, 2289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2290 0, 717, 0, 415, 0, 0, 0, 0, 0, 0, 2291 415, 0, 0, 0, 0, 510, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 869, 0, 0, 510, 0, 0, 0, 0, 0, 0, 2294 0, 284, 285, 0, 286, 0, 0, 0, 0, 0, 2295 0, 0, 0, 370, 370, 0, 0, 0, 0, 0, 2296 0, 0, 220, 0, 0, 0, 815, 0, 0, 0, 2297 287, 0, 0, 0, 911, 0, 288, 0, 0, 0, 2298 289, 0, 415, 290, 291, 292, 293, 41, 42, 0, 2299 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2300 0, 0, 0, 0, 0, 253, 510, 510, 0, 0, 2301 0, 0, 0, 296, 0, 948, 949, 0, 0, 0, 2302 0, 0, 46, 47, 298, 299, 300, 301, 0, 966, 2303 0, 0, 0, 0, 0, 0, 415, 0, 0, 0, 2304 0, 0, 0, 0, 415, 582, 0, 415, 585, 0, 2305 988, 0, 989, 0, 0, 0, 993, 0, 365, 0, 2306 0, 0, 614, 0, 0, 0, 0, 0, 0, 0, 2307 0, 0, 0, 0, 0, 0, 0, 0, 370, 0, 2308 213, 632, 0, 0, 342, 8, 9, 10, 11, 12, 2309 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2310 23, 24, 25, -295, 0, 26, 27, 28, 0, 0, 2311 0, 415, 0, 0, 31, 415, 0, 0, 0, 0, 2312 0, 1027, 0, 0, 0, 0, 0, 0, 1028, 0, 2313 0, 0, 0, 0, 0, 0, 525, 0, 525, 0, 2314 0, 1030, 34, 1031, 0, 0, 365, 37, 0, 337, 2315 338, 40, 0, -295, 0, 0, 0, 1043, 41, 42, 2316 0, 0, 0, 0, 1047, 0, 0, 0, 0, 43, 2317 0, 0, 0, 525, 322, 525, 1085, 0, 0, 1086, 2318 0, 0, 0, 0, 347, 0, 339, 0, 0, 0, 2319 0, 0, 415, 46, 47, 365, 383, 383, 0, 0, 2320 0, 0, 0, 167, 207, 2, 208, 4, 5, 6, 2321 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2322 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2323 0, 26, 27, 28, 415, 0, 0, 0, 342, 365, 2324 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 0, 591, 0, 2326 0, 0, 0, 0, 0, 0, 0, 322, 34, 0, 2327 35, 0, 36, 0, 0, 209, 39, 0, 0, 0, 2328 0, 0, 0, 415, 415, 0, 0, 0, 0, 0, 2329 0, 479, 0, 0, 1159, 43, 0, 0, 0, 0, 2330 0, 0, 809, 365, 0, 0, 0, 0, 0, 0, 2331 0, 0, 210, 614, 0, 614, 614, 0, 0, 46, 2332 47, 0, 614, 0, 0, 0, 0, 0, 0, 0, 2333 0, 0, 848, 365, 0, 0, 0, 0, 365, 0, 2334 0, 0, 0, 0, 0, 0, 0, 365, 365, 365, 2335 0, 0, 527, 0, 0, 0, 0, 0, 1224, 0, 2336 0, 0, 0, 0, 0, 0, 365, 0, 0, 0, 2337 0, 415, 891, 0, 0, 415, 894, 0, 0, 0, 2338 0, 0, 896, 0, 0, 0, 0, 0, 0, 0, 2339 0, 0, 1236, 0, 0, 0, 0, 1238, 0, 0, 2340 0, 415, 0, 0, 0, 1242, 0, 383, 0, 0, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 365, 614, 0, 0, 0, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 1271, 0, 0, 0, 0, 0, 0, 0, 0, 2345 0, 0, 0, 1279, 0, 0, 1280, 0, 1281, 0, 2346 342, 365, 0, 0, 0, 415, 415, 0, 0, 0, 2347 0, 0, 1290, 1291, 0, 0, 0, 0, 0, 0, 2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2349 0, 0, 0, 0, 1304, 0, 0, 0, 0, 0, 2350 0, 711, 284, 285, 0, 286, 0, 0, 0, 0, 2351 0, 415, 0, 0, 0, 0, 0, 0, 0, 365, 2352 0, 0, 0, 0, 0, 0, 809, 365, 0, 0, 2353 614, 287, 614, 0, 0, 0, 0, 288, 0, 0, 2354 745, 289, 614, 1345, 290, 291, 292, 293, 41, 42, 2355 0, 294, 295, 762, 0, 0, 0, 0, 745, 43, 2356 0, 745, 0, 0, 0, 0, 0, 0, 0, 0, 2357 0, 0, 772, 773, 296, 0, 380, 0, 0, 0, 2358 0, 761, 0, 46, 47, 298, 299, 300, 301, 0, 2359 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 2360 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 2361 0, 0, 347, 0, 0, 809, 0, 762, 0, 1396, 2362 0, 1397, 342, 365, 415, 0, 415, 0, 0, 0, 2363 415, 0, 0, 0, 0, 1407, 0, 1408, 0, 0, 2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2365 0, 614, 614, 0, 0, 1415, 0, 0, 0, 0, 2366 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 2367 0, 1433, 1435, 0, 0, 383, 0, 0, 365, 0, 2368 0, 0, 1440, 0, 0, 1242, 0, 0, 415, 8, 2369 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2370 19, 20, 21, 22, 23, 24, 25, -295, 1464, 0, 2371 415, 1156, 0, 0, 0, 0, 0, 1471, 31, 0, 2372 1473, 365, 1475, 1477, 1479, 0, 0, 415, 1168, 0, 2373 614, 614, 1173, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 365, 365, 0, 0, 34, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, -295, 0, 0, 2376 0, 0, 0, 0, 1510, 0, 1512, 0, 1242, 0, 2377 0, 0, 0, 0, 0, 762, 0, 972, 0, 0, 2378 0, 0, 0, 0, 1524, 0, 0, 983, 0, 0, 2379 0, 0, 0, 0, 992, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 0, 415, 0, 415, 0, 0, 2381 0, 0, 415, 0, 0, 0, 0, 0, 0, 0, 2382 0, 614, 0, 0, 0, 0, 0, 0, 0, 1175, 2383 0, 0, 8, 9, 10, 11, 12, 1010, 1011, 0, 2384 0, 347, 0, 0, 0, 0, 809, 415, 1258, 0, 2385 0, 0, 0, 0, 0, 347, 0, 0, 0, 284, 2386 285, 31, 286, 0, 0, 0, 0, 0, 0, 0, 2387 0, 365, 0, 0, 0, 0, 0, 0, 0, 0, 2388 0, 0, 0, 0, 0, 0, 0, 0, 287, 34, 2389 0, 0, 0, 0, 288, 1041, 0, 0, 289, 383, 2390 0, 290, 291, 292, 293, 41, 42, 0, 294, 295, 2391 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 296, 342, 380, 0, 0, 0, 347, 0, 0, 2394 1176, 47, 298, 299, 300, 301, 0, 0, 0, 0, 2395 365, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2396 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2397 21, 22, 23, 24, 25, 0, 322, 26, 27, 28, 2398 0, 0, 0, 0, 284, 285, 31, 286, 0, 0, 2399 0, 0, 1132, 1133, 0, 0, 0, 0, 0, 0, 2400 0, 0, 365, 365, 0, 0, 383, 0, 0, 0, 2401 0, 0, 983, 287, 34, 1147, 35, 745, 36, 288, 2402 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2403 41, 42, 0, 294, 295, 0, 0, 0, 1163, 0, 2404 0, 43, 0, 0, 0, 0, 0, 0, 0, 1178, 2405 0, 284, 285, 0, 286, 0, 296, 0, 344, 0, 2406 0, 0, 0, 761, 0, 345, 47, 298, 299, 300, 2407 301, 383, 0, 1196, 0, 0, 0, 0, 0, 0, 2408 287, 0, 0, 0, 0, 0, 288, 0, 983, 983, 2409 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2410 294, 295, 0, 0, 0, 0, 0, 0, 43, 1228, 2411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2412 0, 0, 0, 296, 0, 380, 0, 365, 980, 0, 2413 0, 0, 46, 47, 298, 299, 300, 301, 0, 0, 2414 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2465 0, 0, 0, 0, 283, 284, 31, 285, 8, 9, 2415 2466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2416 20, 21, 22, 23, 24, 25, 983, 0, 26, 27, 2417 28, 29, 0, 0, 30, 0, 0, 31, 32, 0, 2418 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 2419 0, 284, 285, 0, 286, 0, 0, 0, 0, 0, 2420 1282, 1283, 33, 0, 0, 34, 0, 35, 0, 36, 2421 37, 0, 38, 39, 40, 0, 0, 415, 0, 0, 2422 287, 41, 42, 0, 0, 0, 288, 0, 0, 0, 2423 289, 0, 43, 290, 291, 292, 293, 41, 42, 0, 2424 294, 295, 415, 415, 0, 0, 0, 44, 43, 45, 2425 0, 0, 0, -524, 0, 0, 46, 47, 0, 0, 2426 0, 0, 0, 296, 0, 380, 0, 415, 0, 0, 2427 0, 0, 46, 47, 298, 299, 300, 301, 0, 0, 2428 983, 0, 1, 2, 208, 4, 5, 6, 7, 8, 2429 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2430 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2431 27, 28, 29, 0, 0, 30, 284, 285, 31, 1050, 2432 1051, 0, 1052, 0, 0, 1053, 1054, 1055, 1056, 1057, 2433 1058, 1059, 1060, 0, 0, 0, 1061, 0, 0, 0, 2434 1062, 1063, 0, 33, 1390, 287, 34, 745, 35, 0, 2435 36, 1064, 0, 38, 39, 289, 0, 0, 290, 291, 2436 292, 293, 41, 42, 0, 294, 295, 0, 0, 0, 2437 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2438 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 2439 1065, 0, 0, 173, 0, 0, 0, 46, 47, 298, 2440 299, 300, 301, 0, 0, 0, 0, 1066, 0, 0, 2441 0, -130, 0, 0, 0, 0, 0, 0, 0, 0, 2442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2443 0, 1449, 0, 0, 0, 0, 0, 0, 1, 2, 2444 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2445 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2446 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2447 0, 30, 284, 285, 31, 286, 8, 9, 10, 11, 2467 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2468 28, 0, 0, 286, 34, 0, 35, 31, 36, 287, 2469 0, 38, 39, 288, 0, 0, 289, 290, 291, 292, 2470 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2472 0, 0, 38, 39, 0, 0, 295, 0, 962, 0, 2473 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2474 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2448 2475 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2449 2476 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2450 0, 287, 34, 0, 35, 31, 36, 288, 0, 38, 2451 39, 289, 0, 1516, 290, 291, 292, 293, 41, 42, 2452 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2453 0, 0, 0, 34, 0, 0, 0, 0, 112, 0, 2454 38, 39, 0, 0, 296, 0, 1065, 0, 0, 41, 2455 42, 0, 0, 46, 47, 298, 299, 300, 301, 0, 2456 0, 0, 0, 0, 0, 0, 322, -130, 1, 2, 2457 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2458 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2459 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2460 0, 30, 284, 285, 31, 286, 0, 0, 0, 8, 2461 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2462 19, 20, 21, 22, 23, 24, 25, -296, 0, 0, 2463 0, 287, 34, 0, 35, 0, 36, 288, 31, 38, 2464 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2465 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2466 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2467 0, 0, 0, 0, 296, 0, 45, -296, 0, 0, 2468 0, 0, 0, 46, 47, 298, 299, 300, 301, 2, 2469 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2477 0, 0, 0, 283, 284, 31, 285, 8, 9, 10, 2478 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2479 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2480 0, 0, 286, 34, 0, 35, 31, 36, 287, 0, 2481 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2482 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2483 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2484 0, 208, 39, 0, 0, 295, 0, 343, 0, 0, 2485 0, 0, 0, 344, 46, 297, 298, 299, 300, 2, 2486 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2470 2487 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2471 2488 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2472 0, 0, 284, 285, 31, 286, 8, 9, 10, 11, 2473 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2474 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2475 0, 287, 34, 0, 35, 31, 36, 288, 0, 38, 2476 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2477 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2478 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 2479 38, 39, 0, 0, 296, 0, 971, 0, 0, 0, 2480 0, 761, 0, 345, 47, 298, 299, 300, 301, 2, 2481 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2482 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2483 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2484 0, 0, 284, 285, 31, 286, 8, 9, 10, 11, 2485 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2486 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2487 0, 287, 34, 0, 35, 31, 36, 288, 0, 38, 2488 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2489 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2490 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 2491 209, 39, 0, 0, 296, 0, 971, 0, 0, 0, 2492 0, 761, 0, 46, 47, 298, 299, 300, 301, 2, 2493 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2494 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2495 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2496 0, 0, 284, 285, 31, 286, 0, 0, 0, 0, 2489 0, 0, 283, 284, 31, 285, 0, 0, 0, 0, 2497 2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498 2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2499 0, 28 7, 34, 0, 35, 0, 36, 288, 0, 38,2500 39, 28 9, 0, 0, 290, 291, 292, 293, 41, 42,2501 0, 29 4, 295, 0, 0, 0, 0, 0, 0, 43,2492 0, 286, 34, 0, 35, 0, 36, 287, 0, 208, 2493 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2494 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2502 2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 0, 0, 0, 0, 29 6, 0, 344, 0, 0, 0,2504 0, 0, 0, 345, 47, 298, 299, 300, 301, 2,2505 208, 4, 5, 6, 7, 8, 9, 10, 11, 12,2506 1 3, 14, 15, 16, 17, 18, 19, 20, 21, 22,2507 2 3, 24, 25, 0, 0, 26, 27, 28, 0, 0,2508 0, 0, 284, 285, 31, 286, 0, 0, 0, 0,2496 0, 0, 0, 0, 295, 0, 997, 0, 0, 0, 2497 0, 0, 998, 46, 297, 298, 299, 300, 2, 207, 2498 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2499 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2500 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2501 0, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2509 2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510 2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511 0, 287, 34, 0, 35, 0, 36, 288, 0, 209,2512 39, 289, 0, 0, 290, 291, 292, 293, 41, 42,2513 0, 294, 295, 0, 0, 0, 0, 0, 0, 43,2504 286, 34, 0, 35, 0, 36, 287, 0, 38, 39, 2505 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2506 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2514 2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 296, 0, 1007, 0, 0, 0,2516 0, 0, 0, 1008, 47, 298, 299, 300, 301, 2,2517 208, 4, 5, 6, 7, 8, 9, 10, 11, 12,2518 1 3, 14, 15, 16, 17, 18, 19, 20, 21, 22,2519 2 3, 24, 25, 0, 0, 26, 27, 28, 0, 0,2520 0, 0, 284, 285, 31, 286, 0, 0, 0, 0,2508 0, 0, 0, 295, 0, 962, 0, 0, 0, 0, 2509 0, 344, 46, 297, 298, 299, 300, 2, 207, 4, 2510 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2511 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2512 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2513 283, 284, 31, 285, 0, 0, 0, 0, 0, 0, 2521 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2516 34, 0, 35, 0, 36, 287, 0, 208, 39, 288, 2517 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2518 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522 2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523 0, 287, 34, 0, 35, 0, 36, 288, 0, 38, 2524 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2525 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2527 0, 0, 0, 0, 296, 0, 971, 0, 0, 0, 2528 0, 0, 0, 345, 47, 298, 299, 300, 301, 2, 2529 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2530 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2531 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2532 0, 0, 284, 285, 31, 286, 0, 0, 0, 0, 2533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2535 0, 287, 34, 0, 35, 0, 36, 288, 0, 209, 2536 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2537 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 296, 0, 380, 0, 0, 0, 2540 0, 0, 0, 46, 47, 298, 299, 300, 301, 1, 2520 0, 0, 295, 0, 379, 0, 0, 0, 0, 0, 2521 45, 46, 297, 298, 299, 300, -515, 0, 0, 1, 2541 2522 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2542 2523 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, … … 2548 2529 38, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2549 2530 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2551 0, 0, 0, 0, 0, 44, 0, 45, 0, 0, 2552 0, 0, 0, 0, 46, 47, 207, 2, 208, 4, 2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 43, 0, 44, 0, 0, 2533 0, 0, 0, 45, 46, 1, 2, 3, 4, 5, 2534 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2535 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2536 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2537 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2540 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2541 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2544 0, 43, 0, 44, 0, 0, 0, -519, 0, 45, 2545 46, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2546 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2547 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2548 28, 29, 0, 0, 30, 0, 0, 31, 32, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2551 0, 0, 33, 0, 0, 34, 0, 35, 0, 36, 2552 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 2553 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2555 0, 0, 0, 0, 0, 0, 0, 43, 0, 44, 2556 0, 0, 0, 0, 0, 45, 46, 1, 2, 207, 2557 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2558 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2559 24, 25, 0, 0, 26, 27, 28, 29, 0, 0, 2560 30, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2563 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2564 0, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2565 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2566 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2567 0, 0, 0, 0, 0, 44, 31, 0, 0, 0, 2568 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 34, 0, 35, 0, 36, 37, 2571 0, 208, 39, 40, 0, 0, 0, 0, 0, 0, 2572 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 43, 0, 209, 0, 2575 0, 0, 0, 0, 45, 46, 2, 207, 4, 5, 2576 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2577 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2578 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2579 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2580 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2581 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2582 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2583 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2584 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2585 23, 24, 25, 34, 0, 26, 27, 28, 0, 0, 2586 38, 39, -399, 677, 31, 0, 0, 0, 0, 45, 2587 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 34, 0, 35, 634, 36, 338, 0, 38, 2590 39, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2592 0, 1350, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 0, 0, 0, 677, 0, 0, 0, 2594 0, 0, 45, 46, 2, 207, 4, 5, 6, 7, 2595 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2596 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2597 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2598 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2599 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2600 25, 0, 0, 26, 27, 28, 0, 34, 0, 35, 2601 0, 36, 31, 684, 38, 39, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2603 0, 0, 0, 0, 0, 0, 1352, 0, 0, 0, 2604 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2605 0, 677, 0, 0, 0, 0, 0, 45, 46, 2, 2606 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2607 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2608 23, 24, 25, 0, 685, 26, 27, 28, 1091, 0, 2609 45, 46, 0, 0, 31, 0, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2613 39, 0, 2, 207, 4, 5, 6, 7, 8, 9, 2614 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2615 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2616 28, 0, 0, 0, 0, 0, 271, 31, 0, 0, 2617 0, 0, 45, 46, 0, 0, 0, 0, 0, 0, 2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2619 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2620 0, 0, 38, 39, 0, 2, 207, 4, 5, 6, 2621 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2622 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2623 0, 26, 27, 28, 0, 0, 0, 0, 0, 677, 2624 31, 0, 0, 0, 0, 45, 46, 0, 0, 0, 2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2626 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2627 35, 0, 36, 0, 0, 38, 39, 0, 2, 207, 2628 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2629 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2630 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2631 0, 0, 592, 31, 0, 0, 0, 0, 45, 46, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2634 0, 34, 0, 35, 0, 36, 0, 0, 208, 39, 2635 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2636 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2637 26, 27, 28, 0, 0, 0, 0, 283, 284, 31, 2638 285, 0, 0, 0, 0, 209, 0, 0, 0, 0, 2639 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 286, 34, 0, 0, 2641 0, 0, 287, 0, 38, 39, 288, 0, 0, 289, 2642 290, 291, 292, 41, 42, 0, 293, 294, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 2645 0, 517, 0, 0, 172, 0, 0, 45, 46, 297, 2646 298, 299, 300, 8, 9, 10, 11, 12, 13, 14, 2647 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2648 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2649 283, 284, 31, 285, 8, 9, 10, 11, 12, 13, 2650 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2651 24, 25, 0, 0, 26, 27, 28, 0, 0, 286, 2652 34, 0, 0, 31, 0, 287, 0, 38, 39, 288, 2653 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2654 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 34, 0, 0, 0, 0, 37, 0, 336, 337, 2656 40, 0, 295, -35, 296, 0, 0, 41, 42, 0, 2657 45, 46, 297, 298, 299, 300, 8, 9, 10, 11, 2658 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2659 22, 23, 24, 25, 0, 338, 26, 27, 28, 0, 2660 0, 45, 46, 283, 284, 31, 285, 8, 9, 10, 2661 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2662 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2663 0, 0, 286, 34, 0, 0, 31, 0, 287, 0, 2664 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2665 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 34, 0, 0, 0, 0, 111, 2667 0, 38, 39, 0, 0, 295, 0, 296, 0, 0, 2668 41, 42, 0, 45, 46, 297, 298, 299, 300, 8, 2669 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2670 19, 20, 21, 22, 23, 24, 25, 0, 44, 26, 2671 27, 28, 0, 0, 45, 46, 283, 284, 31, 285, 2672 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2673 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2674 26, 27, 28, 0, 0, 286, 34, 0, 0, 31, 2675 684, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2676 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2677 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2678 0, 0, 0, 0, 38, 39, 0, 0, 295, 0, 2679 158, 0, 0, 0, 0, 0, 45, 46, 297, 298, 2680 299, 300, 8, 9, 10, 11, 12, 13, 14, 15, 2681 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2682 0, 685, 26, 27, 28, 1220, 0, 45, 46, 283, 2683 284, 31, 285, 8, 9, 10, 11, 12, 13, 14, 2684 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2685 25, 0, 0, 26, 27, 28, 0, 0, 286, 34, 2686 0, 0, 31, 0, 287, 0, 38, 39, 288, 0, 2687 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2689 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2690 0, 295, 0, 592, 0, 0, 0, 0, 0, 45, 2691 46, 297, 298, 299, 300, 8, 9, 10, 11, 12, 2692 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2693 23, 24, 25, 0, 258, 26, 27, 28, 0, 0, 2694 45, 46, 283, 284, 31, 285, 0, 0, 0, 0, 2695 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2696 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2697 25, 286, 34, 26, 27, 28, 0, 287, 0, 38, 2698 39, 288, 31, 0, 289, 290, 291, 292, 41, 42, 2699 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2701 34, 0, 0, 0, 295, 0, 379, 38, 39, 0, 2702 0, 0, 45, 46, 297, 298, 299, 300, 467, 2, 2703 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2704 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2705 23, 24, 25, 0, 158, 26, 27, 28, 0, 0, 2706 45, 46, 0, 0, 31, 0, 0, 0, 8, 9, 2707 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2708 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2709 28, 0, 34, 0, 35, 0, 36, 31, 0, 38, 2710 39, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2711 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2712 22, 23, 24, 25, 0, 34, 26, 27, 28, 0, 2713 37, 0, 38, 39, 40, 31, 0, 0, 0, -3, 2714 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2715 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2716 24, 25, 0, 34, 26, 27, 28, 43, 37, 158, 2717 38, 39, 40, 31, 0, 45, 46, 0, 0, 41, 2718 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2719 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2720 0, 34, 26, 27, 28, 43, 37, 44, 208, 39, 2721 40, 31, 0, 45, 46, 0, 0, 41, 42, 0, 2722 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2723 18, 19, 20, 21, 22, 23, 24, 25, -291, 34, 2724 26, 27, 28, 43, 37, 271, 336, 337, 40, 31, 2725 0, 45, 46, 0, 0, 41, 42, 0, 8, 9, 2726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2727 20, 21, 22, 23, 24, 25, -291, 34, 26, 27, 2728 28, 634, 0, 338, 38, 39, 0, 31, -291, 45, 2729 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2730 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2731 0, 26, 27, 28, 0, 34, 0, 0, 0, 634, 2732 31, 338, 38, 39, 0, 0, -291, 45, 46, 8, 2733 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2734 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2735 27, 28, 0, 0, 0, 208, 39, 0, 31, 338, 2736 0, 0, 0, 0, 0, 45, 46, 8, 9, 10, 2737 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2738 21, 22, 23, 24, 25, 0, 34, 26, 27, 28, 2739 0, 0, 271, 38, 39, 0, 31, 0, 45, 46, 2740 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2741 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2742 26, 27, 28, 0, 34, 0, 0, 0, 0, 31, 2743 338, 38, 39, 0, 0, 0, 45, 46, 8, 9, 2744 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2745 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2746 28, 0, 0, 0, 38, 39, 0, 31, 685, 0, 2747 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2749 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2750 0, 592, 38, 39, 0, 0, 0, 45, 46, 2, 2751 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2752 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2753 23, 24, 25, 0, 0, 26, 27, 28, 0, 44, 2754 0, 0, 0, 0, 31, 45, 46, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2757 0, 0, 34, 0, 35, 0, 36, 0, 0, 38, 2758 39, 283, 284, 0, 285, 1041, 0, 1042, 0, 0, 2759 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 2760 1524, 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 2761 286, 0, 0, 0, 0, -412, 1054, 0, 0, 0, 2762 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2763 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765 0, 0, 0, 295, 0, 379, 0, 0, 172, 0, 2766 0, 45, 46, 297, 298, 299, 300, 0, 0, 283, 2767 284, 1056, 285, 1041, 0, 1042, -126, 0, 1043, 1044, 2768 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 2769 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 2770 0, 0, 0, 0, 1054, 0, 0, 0, 288, 0, 2771 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2774 0, 295, 0, 379, 0, 0, 172, 0, 0, 45, 2775 46, 297, 298, 299, 300, 0, 0, 0, 0, 1056, 2776 0, 0, 0, 0, -126, 2, 207, 4, 5, 6, 2777 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2778 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2779 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2780 31, 0, 283, 284, 0, 285, 1041, 0, 1042, 1398, 2781 1399, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2782 0, 1524, 1051, 0, 0, 0, 1052, 1053, 34, 33, 2783 35, 286, 36, 0, 0, 38, 39, 1054, 0, 0, 2784 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2785 0, 293, 294, 0, 0, 0, 0, 1311, 0, 0, 2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2787 0, 0, 0, 0, 295, 0, 379, 0, 0, 172, 2788 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2789 283, 284, 1056, 285, 1041, 0, 1042, 1398, 1399, 1043, 2790 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 2791 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 2792 0, 0, 0, 0, 0, 1054, 0, 0, 0, 288, 2793 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2794 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796 0, 0, 295, 0, 379, 0, 0, 172, 0, 0, 2797 45, 46, 297, 298, 299, 300, 0, 0, 283, 284, 2798 1056, 285, 1041, 0, 1042, 0, 0, 1043, 1044, 1045, 2799 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 0, 2800 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 0, 2801 0, 0, 0, 1054, 0, 0, 0, 288, 0, 0, 2802 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2803 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2805 295, 0, 379, 0, 0, 172, 0, 0, 45, 46, 2806 297, 298, 299, 300, 286, 0, 0, 0, 1056, 0, 2807 640, 0, 140, 141, 288, 0, 0, 289, 290, 291, 2808 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2809 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2810 0, 0, 0, 0, 0, 0, 0, 295, 0, 641, 2811 0, 642, 380, 0, 0, 45, 46, 297, 298, 299, 2812 300, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2813 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2814 0, 293, 294, 0, 0, 0, 0, 0, 0, 283, 2815 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2816 0, 0, 0, 0, 295, 0, 379, 0, 283, 284, 2817 0, 285, 708, 46, 297, 298, 299, 300, 286, 0, 2818 0, 0, 0, 0, 287, 0, 0, 0, 288, 0, 2819 0, 289, 290, 291, 292, 41, 42, 286, 293, 294, 2820 0, 0, 0, 287, 0, 0, 0, 288, 0, 0, 2821 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2822 0, 295, 0, 379, 0, 283, 284, 0, 285, 344, 2823 46, 297, 298, 299, 300, 0, 0, 0, 0, 0, 2824 506, 0, 0, 0, 283, 284, 0, 285, 45, 46, 2825 297, 298, 299, 300, 286, 0, 0, 0, 0, 0, 2826 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2827 292, 41, 42, 286, 293, 294, 0, 0, 0, 287, 2828 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2829 41, 42, 0, 293, 294, 0, 0, 295, 0, 0, 2830 0, 283, 284, 0, 285, 45, 46, 297, 298, 299, 2831 300, 0, 0, 0, 0, 0, 511, 0, 0, 0, 2832 0, 0, 0, 0, 45, 46, 297, 298, 299, 300, 2833 286, 0, 0, 0, 0, 0, 287, 0, 0, 0, 2834 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2835 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2837 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 2838 0, 45, 46, 297, 298, 299, 300, 2, 207, 4, 2553 2839 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2554 2840 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2555 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2556 0, 0, 31, 0, 8, 9, 10, 11, 12, 13, 2557 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2558 24, 25, 0, 0, 26, 27, 28, 486, 487, 488, 2559 34, 0, 35, 31, 36, 37, 0, 209, 39, 40, 2560 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2562 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2563 0, 0, 44, 0, 210, 0, 0, 0, 0, 0, 2564 0, 46, 47, 1, 2, 208, 4, 5, 6, 7, 2565 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2566 18, 19, 20, 21, 22, 23, 24, 25, -295, 0, 2567 26, 27, 28, 29, 0, 0, 30, 0, 0, 31, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2571 0, 36, 0, 0, 38, 39, 0, 0, -295, 0, 2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2573 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2575 0, 45, 0, 0, 0, 0, 0, 0, 46, 47, 2576 1, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2577 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2578 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2579 29, 0, 0, 30, 0, 0, 31, 0, 0, 0, 2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2583 0, 38, 39, 0, 0, 0, 0, 0, 0, 0, 2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2585 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2586 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 2587 0, 0, 0, 0, 0, 46, 47, 2, 208, 4, 2588 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2589 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2590 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2841 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2591 2842 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2592 2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2594 34, 0, 35, 0, 36, 37, 0, 209, 39, 40, 2595 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2596 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 0, 0, 44, 0, 210, 0, 0, 0, 0, 0, 2599 0, 46, 47, 2, 208, 4, 5, 6, 7, 8, 2600 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2601 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2602 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2606 36, 0, 0, 38, 39, 0, 0, 0, 0, 0, 2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2608 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 0, 0, 0, -403, 2610 679, 0, 0, 0, 0, 0, 0, 46, 47, 2, 2611 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2845 34, 0, 35, 0, 36, 37, 0, 175, 176, 40, 2846 0, 0, 0, 0, 0, 0, 41, 42, 206, 2, 2847 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2612 2848 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2613 2849 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, … … 2615 2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2616 2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2617 0, 0, 34, 0, 35, 0, 36, 0, 0, 38, 2618 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2620 0, 1369, 0, 0, 0, 0, 0, 0, 0, 0, 2621 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 2622 0, 0, 0, 46, 47, 2, 208, 4, 5, 6, 2623 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2624 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2625 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2626 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2628 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2629 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2631 0, 0, 0, 0, 0, 43, 0, 1371, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 679, 0, 0, 0, 0, 0, 0, 46, 2634 47, 2, 208, 4, 5, 6, 7, 8, 9, 10, 2635 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2636 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2637 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2853 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2854 39, 467, 2, 207, 4, 5, 6, 7, 8, 9, 2855 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2856 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2857 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2638 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639 2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2641 0, 209, 39, 0, 0, 0, 0, 0, 0, 0, 2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2643 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 0, 0, 0, 0, 272, 0, 2645 0, 0, 0, 0, 0, 46, 47, 2, 208, 4, 2646 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2647 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2648 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2649 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2656 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 2657 0, 46, 47, 2, 208, 4, 5, 6, 7, 8, 2658 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2659 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2660 27, 28, 0, 0, 0, 0, 0, 0, 31, 0, 2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2663 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2664 36, 0, 0, 38, 39, 0, 0, 0, 0, 0, 2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2668 593, 0, 0, 0, 0, 0, 0, 46, 47, 2, 2669 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2670 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2671 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2672 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2675 0, 0, 34, 0, 35, 0, 36, 0, 0, 209, 2676 39, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2677 17, 18, 19, 20, 21, 22, 23, 24, 25, 43, 2678 0, 26, 27, 28, 0, 0, 0, 0, 284, 285, 2679 31, 286, 0, 0, 0, 0, 210, 0, 0, 0, 2680 0, 0, 0, 46, 47, 0, 0, 0, 0, 0, 2681 0, 0, 0, 0, 0, 0, 0, 287, 34, 0, 2682 0, 0, 0, 288, 0, 38, 39, 289, 0, 0, 2683 290, 291, 292, 293, 41, 42, 0, 294, 295, 0, 2684 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2686 296, 0, 518, 0, 0, 173, 0, 0, 0, 46, 2687 47, 298, 299, 300, 301, 8, 9, 10, 11, 12, 2688 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2689 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2690 0, 0, 284, 285, 31, 286, 0, 0, 0, 0, 2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2693 0, 287, 34, 0, 0, 0, 0, 641, 0, 38, 2694 39, 289, 0, 0, 290, 291, 292, 293, 41, 42, 2695 0, 294, 295, 0, 0, 0, 0, 0, 0, 43, 2696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2697 0, 0, 0, 0, 296, -35, 742, 0, 0, 0, 2698 0, 0, 0, 46, 47, 298, 299, 300, 301, 8, 2699 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2700 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2701 27, 28, 0, 0, 0, 0, 284, 285, 31, 286, 2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2704 0, 0, 0, 0, 0, 287, 34, 0, 0, 0, 2705 0, 288, 0, 38, 39, 289, 0, 0, 290, 291, 2706 292, 293, 41, 42, 0, 294, 295, 0, 0, 0, 2707 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2708 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 2709 297, 0, 0, 0, 0, 0, 0, 46, 47, 298, 2710 299, 300, 301, 8, 9, 10, 11, 12, 13, 14, 2711 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2712 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2713 284, 285, 31, 286, 0, 0, 0, 0, 0, 0, 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 2716 34, 0, 0, 0, 0, 288, 0, 38, 39, 289, 2717 0, 0, 290, 291, 292, 293, 41, 42, 0, 294, 2718 295, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2720 0, 0, 296, 0, 159, 0, 0, 0, 0, 0, 2721 0, 46, 47, 298, 299, 300, 301, 8, 9, 10, 2722 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2723 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2724 0, 0, 0, 0, 284, 285, 31, 286, 0, 0, 2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727 0, 0, 0, 287, 34, 0, 0, 0, 0, 288, 2728 0, 38, 39, 289, 0, 0, 290, 291, 292, 293, 2729 41, 42, 0, 294, 295, 0, 0, 0, 0, 0, 2730 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2731 0, 0, 0, 0, 0, 0, 296, 0, 593, 0, 2732 0, 0, 0, 0, 0, 46, 47, 298, 299, 300, 2733 301, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2734 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2735 0, 26, 27, 28, 0, 0, 0, 0, 284, 285, 2736 31, 286, 0, 0, 0, 0, 0, 0, 0, 0, 2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738 0, 0, 0, 0, 0, 0, 0, 287, 34, 0, 2739 0, 0, 0, 288, 0, 38, 39, 289, 0, 0, 2740 290, 291, 292, 293, 41, 42, 0, 294, 295, 0, 2741 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2743 296, 0, 380, 0, 0, 0, 0, 0, 0, 46, 2744 47, 298, 299, 300, 301, 468, 2, 208, 4, 5, 2745 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2746 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2747 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2748 0, 31, 0, 0, 0, 8, 9, 10, 11, 12, 2749 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2750 23, 24, 25, 0, 0, 26, 27, 28, 0, 34, 2751 0, 35, 0, 36, 31, 0, 38, 39, 0, 0, 2752 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2753 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2754 25, 0, 34, 26, 27, 28, 0, 37, 0, 38, 2755 39, 40, 31, 0, 0, 0, -3, 0, 41, 42, 2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2758 34, 0, 0, 0, 44, 37, 159, 38, 39, 40, 2759 0, 0, 0, 46, 47, 0, 41, 42, 0, 0, 2760 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2762 0, 0, 44, 0, 45, 0, 0, 0, 0, 0, 2763 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2764 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2765 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2766 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2767 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2768 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2769 34, 0, 31, 0, 0, 37, 0, 209, 39, 40, 2770 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2771 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2772 34, 0, 0, 0, 0, 37, 0, 337, 338, 40, 2773 0, 0, 44, 0, 272, 0, 41, 42, 0, 0, 2774 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2776 0, 0, 635, 0, 339, 0, 0, 0, 0, 0, 2777 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2778 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2779 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2780 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2781 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2782 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2783 34, 0, 31, 0, 0, 37, 0, 337, 338, 40, 2784 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2785 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2786 34, 0, 0, 0, 0, 112, 0, 38, 39, 0, 2787 0, 0, 0, 0, 339, 0, 41, 42, 0, 0, 2788 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2790 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 2791 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2792 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2793 25, -295, 0, 26, 27, 28, 0, 0, 0, 0, 2794 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2795 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2796 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2797 34, 0, 31, 686, 0, 0, 0, 38, 39, 0, 2798 0, -295, 0, 0, 0, 0, 0, 0, 0, 0, 2799 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2800 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2801 0, 0, 635, 0, 339, 0, 0, 0, 0, 0, 2802 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2804 0, 0, 0, 0, 687, 0, 0, 0, 688, 0, 2805 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2806 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2807 25, -295, 0, 26, 27, 28, 0, 0, 0, 0, 2808 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2809 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2810 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2811 34, 0, 31, 686, 0, 0, 0, 38, 39, 0, 2812 0, -295, 0, 0, 0, 0, 0, 0, 0, 0, 2813 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2814 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2815 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, 2816 0, 46, 47, 0, 0, 0, 0, 43, 0, 0, 2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2818 0, 0, 0, 0, 687, 0, 0, 0, 1101, 0, 2819 0, 46, 47, 8, 9, 10, 11, 12, 13, 14, 2820 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2821 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2822 0, 0, 31, 686, 8, 9, 10, 11, 12, 13, 2823 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2824 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2825 34, 0, 0, 31, 0, 0, 0, 38, 39, 0, 2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2827 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2828 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2829 0, 0, 0, 0, 687, 0, 0, 0, 1233, 0, 2830 0, 46, 47, 0, 0, 0, 0, 0, 43, 0, 2831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2832 0, 0, 0, 635, 0, 339, 0, 0, 0, 0, 2833 0, 0, 46, 47, 8, 9, 10, 11, 12, 13, 2834 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2835 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2836 0, 0, 0, 31, 8, 9, 10, 11, 12, 13, 2837 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2838 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2839 0, 34, 0, 31, 0, 0, 0, 0, 38, 39, 2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2842 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2843 0, 0, 0, 0, 0, 259, 0, 0, 0, 0, 2844 0, 0, 46, 47, 0, 0, 0, 0, 43, 0, 2845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2846 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 2847 0, 0, 46, 47, 8, 9, 10, 11, 12, 13, 2848 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2849 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2850 0, 0, 0, 31, 8, 9, 10, 11, 12, 13, 2851 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2852 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2853 0, 34, 0, 31, 0, 0, 0, 0, 209, 39, 2854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2856 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2857 0, 0, 0, 0, 0, 272, 0, 0, 0, 0, 2858 0, 0, 46, 47, 0, 0, 0, 0, 43, 0, 2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2860 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 2861 0, 0, 46, 47, 8, 9, 10, 11, 12, 13, 2862 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2863 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2864 0, 0, 0, 31, 8, 9, 10, 11, 12, 13, 2865 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2866 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2867 0, 34, 0, 31, 0, 0, 0, 0, 38, 39, 2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2869 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2870 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2871 0, 0, 0, 0, 0, 687, 0, 0, 0, 0, 2872 0, 0, 46, 47, 0, 0, 0, 0, 43, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2874 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 2875 0, 0, 46, 47, 8, 9, 10, 11, 12, 13, 2876 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2877 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2878 0, 0, 0, 31, 8, 9, 10, 11, 12, 13, 2879 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2880 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2881 0, 34, 0, 31, 0, 0, 0, 0, 38, 39, 2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2884 0, 34, 0, 0, 0, 0, 0, 0, 209, 39, 2885 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 2886 0, 0, 46, 47, 0, 0, 0, 0, 43, 0, 2887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2889 0, 0, 46, 47, 2, 208, 4, 5, 6, 7, 2860 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2861 0, 0, 38, 39, 2, 207, 4, 5, 6, 7, 2890 2862 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2891 2863 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2892 2864 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2893 0, 284, 285, 0, 286, 1051, 0, 1052, 0, 0, 2894 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 0, 0, 2895 1549, 1061, 0, 0, 0, 1062, 1063, 34, 33, 35, 2896 287, 36, 0, 0, 38, 39, 1064, 0, 0, 0, 2897 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2898 294, 295, 0, 0, 0, 0, 0, 0, 43, 0, 2865 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2866 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2867 0, 26, 27, 28, 485, 486, 487, 34, 0, 35, 2868 31, 36, 0, 0, 208, 39, 0, 0, 0, 0, 2899 2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2900 -416, 0, 0, 296, 0, 380, 0, 0, 173, 0, 2901 0, 0, 46, 47, 298, 299, 300, 301, 0, 0, 2902 0, 0, 1066, 0, 284, 285, -130, 286, 1051, 0, 2903 1052, 0, 0, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 2904 1060, 0, 0, 0, 1061, 0, 0, 0, 1062, 1063, 2905 0, 33, 0, 287, 0, 0, 0, 0, 0, 1064, 2906 0, 0, 0, 289, 0, 0, 290, 291, 292, 293, 2907 41, 42, 0, 294, 295, 0, 0, 0, 0, 0, 2908 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 2909 0, 0, 0, 0, 0, 0, 296, 0, 380, 0, 2910 0, 173, 0, 0, 0, 46, 47, 298, 299, 300, 2911 301, 0, 0, 0, 0, 1066, 0, 0, 0, -130, 2912 2, 208, 4, 5, 6, 7, 8, 9, 10, 11, 2913 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2914 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2915 0, 0, 0, 0, 0, 31, 0, 284, 285, 0, 2916 286, 1051, 0, 1052, 1419, 1420, 1053, 1054, 1055, 1056, 2917 1057, 1058, 1059, 1060, 0, 0, 1549, 1061, 0, 0, 2918 0, 1062, 1063, 34, 33, 35, 287, 36, 0, 0, 2919 38, 39, 1064, 0, 0, 0, 289, 0, 0, 290, 2920 291, 292, 293, 41, 42, 0, 294, 295, 0, 0, 2921 0, 0, 1327, 0, 43, 0, 0, 0, 0, 0, 2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 2923 0, 380, 0, 0, 173, 0, 0, 0, 46, 47, 2924 298, 299, 300, 301, 0, 0, 284, 285, 1066, 286, 2925 1051, 0, 1052, 1419, 1420, 1053, 1054, 1055, 1056, 1057, 2926 1058, 1059, 1060, 0, 0, 0, 1061, 0, 0, 0, 2927 1062, 1063, 0, 33, 0, 287, 0, 0, 0, 0, 2928 0, 1064, 0, 0, 0, 289, 0, 0, 290, 291, 2929 292, 293, 41, 42, 0, 294, 295, 0, 0, 0, 2930 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 2931 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 2932 380, 0, 0, 173, 0, 0, 0, 46, 47, 298, 2933 299, 300, 301, 0, 0, 284, 285, 1066, 286, 1051, 2934 0, 1052, 0, 0, 1053, 1054, 1055, 1056, 1057, 1058, 2935 1059, 1060, 0, 0, 0, 1061, 0, 0, 0, 1062, 2936 1063, 0, 33, 0, 287, 0, 0, 0, 0, 0, 2937 1064, 0, 0, 0, 289, 0, 0, 290, 291, 292, 2938 293, 41, 42, 0, 294, 295, 0, 0, 0, 0, 2939 0, 0, 43, 284, 285, 0, 286, 0, 0, 0, 2940 0, 0, 0, 0, 0, 0, 0, 296, 0, 380, 2941 0, 0, 173, 0, 0, 0, 46, 47, 298, 299, 2942 300, 301, 287, 0, 0, 0, 1066, 0, 641, 0, 2943 141, 142, 289, 0, 0, 290, 642, 292, 293, 41, 2944 42, 0, 294, 295, 0, 0, 0, 0, 0, 0, 2945 43, 284, 285, 0, 286, 0, 0, 0, 0, 0, 2946 0, 0, 0, 0, 0, 296, 0, 643, 0, 644, 2947 381, 0, 0, 0, 46, 47, 298, 299, 300, 301, 2948 287, 0, 0, 0, 0, 0, 288, 0, 0, 0, 2949 289, 0, 0, 290, 291, 292, 293, 41, 42, 0, 2950 294, 295, 0, 0, 0, 0, 0, 0, 43, 284, 2951 285, 0, 286, 0, 0, 0, 0, 0, 0, 0, 2952 0, 0, 0, 296, 0, 380, 0, 0, 284, 285, 2953 0, 286, 710, 47, 298, 299, 300, 301, 287, 0, 2954 0, 0, 0, 0, 641, 0, 0, 0, 289, 0, 2955 0, 290, 291, 292, 293, 41, 42, 287, 294, 295, 2956 0, 0, 0, 288, 0, 0, 43, 289, 0, 0, 2957 290, 291, 292, 293, 41, 42, 0, 294, 295, 0, 2958 0, 296, 0, 765, 0, 43, 284, 285, 0, 286, 2959 46, 47, 298, 299, 300, 301, 0, 0, 0, 0, 2960 296, 0, 380, 0, 0, 284, 285, 0, 286, 345, 2961 47, 298, 299, 300, 301, 287, 0, 0, 0, 0, 2962 0, 288, 0, 0, 0, 289, 0, 0, 290, 291, 2963 292, 293, 41, 42, 287, 294, 295, 0, 0, 0, 2964 288, 0, 0, 43, 289, 0, 0, 290, 291, 292, 2965 293, 41, 42, 0, 294, 295, 0, 0, 512, 0, 2966 0, 0, 43, 0, 0, 0, 0, 46, 47, 298, 2967 299, 300, 301, 0, 0, 0, 0, 515, 0, 0, 2968 0, 0, 0, 0, 0, 0, 46, 47, 298, 299, 2969 300, 301, 2, 208, 4, 5, 6, 7, 8, 9, 2970 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2971 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 2972 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2975 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2976 37, 0, 176, 177, 40, 0, 0, 0, 0, 0, 2977 0, 41, 42, 207, 2, 208, 4, 5, 6, 7, 2978 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2979 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2980 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2983 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2984 0, 36, 0, 0, 209, 39, 468, 2, 208, 4, 2985 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2986 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2987 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2988 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2991 34, 0, 35, 0, 36, 0, 0, 38, 39, 2, 2992 208, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2993 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2994 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2995 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998 0, 0, 34, 0, 35, 0, 36, 0, 0, 209, 2999 39 2870 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2871 0, 0, 0, 0, 0, 38, 39 3000 2872 }; 3001 2873 3002 2874 #define yypact_value_is_default(yystate) \ 3003 ((yystate) == (-1 414))2875 ((yystate) == (-1310)) 3004 2876 3005 2877 #define yytable_value_is_error(yytable_value) \ … … 3008 2880 static const yytype_int16 yycheck[] = 3009 2881 { 3010 0, 1, 44, 187, 187, 535, 187, 0, 44, 753, 3011 187, 44, 206, 241, 648, 187, 522, 753, 188, 881, 3012 1, 753, 107, 221, 118, 187, 187, 514, 621, 170, 3013 171, 350, 32, 0, 986, 760, 0, 189, 603, 32, 3014 350, 601, 601, 493, 44, 188, 281, 497, 44, 993, 3015 50, 39, 1337, 604, 44, 1419, 603, 50, 44, 610, 3016 601, 572, 51, 32, 64, 32, 72, 67, 32, 82, 3017 70, 64, 157, 601, 67, 95, 1050, 70, 39, 346, 3018 419, 44, 45, 267, 267, 1031, 267, 694, 601, 70, 3019 267, 63, 107, 601, 50, 267, 296, 110, 268, 1043, 3020 439, 1062, 1063, 601, 117, 267, 267, 107, 447, 203, 3021 130, 263, 264, 1526, 39, 115, 131, 82, 118, 119, 3022 109, 109, 67, 111, 39, 268, 132, 64, 483, 1493, 3023 72, 1030, 1031, 1546, 39, 44, 45, 39, 365, 84, 3024 1553, 735, 369, 636, 637, 187, 427, 428, 148, 149, 3025 111, 187, 115, 881, 187, 1440, 149, 157, 158, 115, 3026 132, 654, 162, 635, 636, 637, 0, 258, 912, 162, 3027 489, 28, 109, 39, 119, 82, 912, 0, 1, 1140, 3028 912, 112, 654, 689, 109, 116, 111, 187, 188, 72, 3029 132, 187, 148, 110, 109, 188, 111, 187, 32, 116, 3030 0, 187, 82, 203, 109, 114, 111, 720, 82, 32, 3031 117, 211, 720, 411, 495, 96, 483, 162, 211, 712, 3032 82, 78, 720, 223, 0, 267, 58, 427, 428, 109, 3033 223, 267, 32, 514, 267, 118, 110, 407, 115, 116, 3034 712, 241, 123, 109, 67, 111, 85, 70, 109, 111, 3035 111, 109, 67, 253, 131, 211, 32, 342, 818, 818, 3036 253, 261, 109, 1423, 407, 830, 266, 267, 268, 820, 3037 1, 996, 283, 273, 113, 268, 108, 818, 223, 111, 3038 635, 636, 637, 830, 253, 241, 253, 372, 799, 253, 3039 818, 67, 1238, 603, 0, 1, 296, 931, 579, 654, 3040 907, 11, 1254, 397, 119, 818, 1, 507, 308, 116, 3041 818, 481, 512, 109, 807, 515, 261, 273, 491, 50, 3042 818, 266, 1050, 1475, 324, 132, 32, 109, 419, 329, 3043 1304, 425, 44, 45, 230, 807, 329, 431, 481, 112, 3044 80, 112, 342, 116, 683, 1291, 346, 162, 439, 131, 3045 350, 351, 308, 249, 621, 82, 447, 712, 1510, 626, 3046 1512, 1521, 1224, 590, 70, 365, 1526, 116, 568, 369, 3047 697, 111, 372, 113, 96, 940, 107, 117, 110, 939, 3048 939, 110, 109, 132, 115, 117, 1546, 116, 220, 110, 3049 346, 1290, 1291, 1553, 749, 1526, 117, 397, 939, 131, 3050 223, 123, 114, 90, 91, 632, 351, 407, 223, 10, 3051 11, 12, 13, 14, 407, 114, 1009, 148, 116, 253, 3052 94, 0, 1553, 80, 258, 425, 157, 427, 428, 1125, 3053 253, 431, 605, 1129, 434, 109, 609, 111, 39, 126, 3054 127, 526, 274, 116, 118, 119, 261, 223, 129, 281, 3055 131, 266, 807, 253, 111, 455, 113, 630, 258, 132, 3056 117, 634, 116, 1407, 1408, 1059, 67, 1018, 1019, 1415, 3057 976, 427, 428, 473, 3, 112, 207, 253, 132, 116, 3058 211, 481, 749, 483, 116, 485, 697, 432, 481, 489, 3059 1464, 72, 485, 0, 505, 495, 1224, 1471, 948, 734, 3060 132, 116, 83, 84, 991, 1139, 658, 507, 649, 509, 3061 241, 830, 512, 3, 514, 515, 1415, 349, 485, 689, 3062 830, 485, 522, 0, 116, 32, 526, 527, 110, 474, 3063 111, 109, 116, 111, 366, 117, 351, 44, 370, 495, 3064 132, 72, 273, 50, 1109, 276, 689, 253, 132, 94, 3065 1524, 112, 83, 84, 116, 116, 911, 64, 514, 254, 3066 67, 1496, 656, 70, 109, 296, 111, 1502, 116, 109, 3067 132, 571, 572, 118, 119, 351, 1304, 308, 131, 579, 3068 111, 792, 809, 94, 132, 419, 913, 814, 1523, 1095, 3069 590, 591, 683, 1528, 1100, 595, 116, 917, 109, 919, 3070 111, 601, 110, 603, 116, 439, 116, 118, 119, 110, 3071 110, 342, 132, 447, 116, 346, 116, 432, 709, 419, 3072 132, 621, 132, 579, 116, 944, 626, 591, 628, 112, 3073 132, 958, 632, 116, 365, 635, 636, 637, 369, 439, 3074 132, 372, 149, 109, 911, 111, 110, 447, 112, 483, 3075 595, 485, 116, 109, 654, 162, 656, 668, 869, 474, 3076 110, 72, 485, 748, 109, 621, 116, 131, 132, 867, 3077 626, 110, 83, 84, 50, 1030, 903, 116, 623, 852, 3078 187, 188, 72, 628, 109, 485, 686, 109, 110, 689, 3079 888, 120, 121, 83, 84, 110, 427, 428, 474, 71, 3080 111, 116, 913, 75, 211, 109, 78, 111, 80, 485, 3081 1304, 118, 712, 713, 714, 87, 223, 124, 125, 109, 3082 720, 721, 950, 109, 455, 111, 109, 738, 912, 912, 3083 109, 912, 873, 88, 89, 912, 1464, 468, 109, 115, 3084 912, 110, 1009, 1471, 914, 110, 253, 958, 748, 749, 3085 912, 912, 110, 753, 754, 700, 72, 110, 74, 75, 3086 267, 112, 493, 72, 495, 109, 497, 83, 84, 714, 3087 109, 914, 945, 468, 83, 84, 507, 72, 509, 485, 3088 595, 512, 115, 514, 515, 996, 1530, 1381, 83, 84, 3089 622, 1321, 115, 116, 1530, 526, 1524, 110, 1530, 799, 3090 1127, 109, 111, 116, 1159, 132, 638, 807, 623, 809, 3091 110, 811, 64, 628, 814, 815, 116, 110, 818, 514, 3092 109, 653, 329, 116, 507, 910, 509, 110, 1022, 512, 3093 830, 109, 515, 116, 529, 211, 1047, 532, 112, 534, 3094 535, 132, 214, 350, 85, 86, 87, 623, 579, 683, 3095 72, 815, 74, 75, 110, 557, 558, 559, 560, 590, 3096 116, 83, 84, 1190, 1191, 110, 811, 109, 109, 111, 3097 111, 116, 113, 114, 1468, 709, 1470, 114, 110, 114, 3098 110, 881, 132, 683, 116, 700, 116, 110, 583, 111, 3099 621, 109, 1159, 116, 109, 626, 111, 273, 132, 714, 3100 407, 632, 734, 903, 1045, 465, 109, 1134, 111, 709, 3101 910, 911, 912, 110, 914, 749, 1127, 881, 114, 116, 3102 296, 110, 110, 110, 700, 1095, 926, 116, 116, 116, 3103 1100, 1525, 308, 82, 109, 1290, 111, 109, 714, 939, 3104 940, 85, 86, 87, 944, 109, 110, 111, 109, 949, 3105 950, 82, 1095, 92, 93, 686, 112, 1100, 0, 1, 3106 655, 119, 657, 116, 117, 109, 966, 111, 949, 113, 3107 114, 1238, 129, 72, 110, 111, 976, 76, 485, 1190, 3108 1191, 353, 489, 355, 83, 84, 128, 29, 30, 465, 3109 32, 58, 59, 724, 950, 94, 811, 115, 116, 1505, 3110 116, 117, 44, 1203, 1204, 94, 1206, 131, 50, 1009, 3111 109, 111, 707, 1213, 109, 1215, 58, 748, 109, 118, 3112 119, 114, 64, 1117, 112, 67, 116, 117, 70, 112, 3113 1030, 1031, 109, 110, 111, 811, 4, 5, 6, 7, 3114 8, 9, 84, 85, 109, 110, 111, 881, 112, 1555, 3115 1050, 44, 45, 1009, 109, 110, 111, 110, 881, 10, 3116 11, 12, 13, 14, 553, 554, 108, 1012, 109, 111, 3117 30, 443, 110, 110, 1401, 110, 118, 911, 809, 455, 3118 110, 881, 110, 814, 555, 556, 1050, 112, 39, 111, 3119 1090, 131, 1419, 116, 601, 1095, 603, 58, 59, 60, 3120 1100, 69, 114, 71, 114, 881, 109, 149, 112, 1109, 3121 561, 562, 672, 110, 1125, 157, 67, 1117, 1129, 1130, 3122 162, 1263, 1264, 1265, 84, 85, 949, 110, 112, 117, 3123 112, 507, 112, 509, 1134, 1220, 512, 112, 117, 515, 3124 3, 117, 116, 94, 29, 187, 188, 10, 11, 12, 3125 13, 14, 110, 110, 116, 114, 112, 112, 109, 1159, 3126 111, 203, 115, 110, 132, 1492, 1493, 118, 119, 211, 3127 115, 115, 903, 109, 116, 881, 39, 1377, 220, 910, 3128 110, 223, 689, 132, 110, 110, 117, 110, 230, 110, 3129 1401, 110, 116, 110, 110, 926, 672, 1012, 110, 110, 3130 110, 1201, 1202, 245, 67, 110, 110, 249, 1419, 110, 3131 110, 253, 254, 720, 721, 110, 1050, 948, 949, 950, 3132 1220, 1202, 110, 110, 1224, 267, 268, 1050, 110, 72, 3133 29, 115, 274, 76, 131, 795, 1012, 1248, 1238, 281, 3134 83, 84, 1242, 949, 117, 805, 72, 116, 74, 75, 3135 1050, 94, 72, 110, 74, 75, 1201, 83, 84, 819, 3136 1224, 1242, 112, 83, 84, 112, 109, 116, 111, 964, 3137 110, 110, 110, 117, 1050, 118, 119, 112, 1009, 116, 3138 114, 1492, 1493, 109, 116, 245, 110, 329, 114, 109, 3139 1290, 1291, 110, 988, 114, 110, 991, 110, 993, 1299, 3140 112, 110, 116, 1397, 1304, 116, 3, 349, 350, 110, 3141 686, 818, 1540, 10, 11, 12, 13, 14, 112, 795, 3142 109, 109, 109, 830, 366, 1159, 109, 1338, 370, 805, 3143 109, 1342, 117, 115, 112, 132, 110, 1337, 110, 381, 3144 1304, 110, 39, 819, 1050, 115, 1530, 1530, 1043, 1530, 3145 115, 114, 129, 1530, 1299, 397, 1337, 112, 1530, 1090, 3146 110, 1531, 116, 112, 132, 407, 112, 110, 1530, 1530, 3147 67, 4, 5, 6, 7, 8, 9, 116, 1201, 1202, 3148 110, 110, 47, 425, 112, 1555, 1201, 112, 1531, 431, 3149 1224, 433, 112, 110, 112, 132, 112, 1397, 112, 132, 3150 33, 1224, 115, 1134, 1238, 912, 72, 914, 74, 75, 3151 76, 1505, 1555, 132, 110, 1415, 115, 83, 84, 1242, 3152 132, 381, 132, 117, 1224, 1201, 468, 110, 112, 115, 3153 112, 473, 112, 1444, 112, 56, 69, 944, 71, 481, 3154 1440, 112, 112, 485, 112, 112, 110, 489, 1224, 110, 3155 492, 109, 494, 881, 72, 112, 74, 75, 76, 1440, 3156 112, 109, 109, 60, 1464, 83, 84, 1027, 1028, 110, 3157 1304, 1471, 514, 1473, 110, 1475, 1299, 114, 99, 132, 3158 112, 1304, 117, 112, 1299, 110, 112, 529, 1530, 1220, 3159 532, 109, 534, 535, 1530, 110, 1202, 1530, 96, 109, 3160 1464, 96, 109, 115, 1304, 1505, 112, 1471, 132, 110, 3161 1510, 1242, 1512, 116, 1337, 42, 110, 110, 1224, 110, 3162 110, 117, 110, 1299, 1524, 1085, 1086, 132, 1304, 96, 3163 1530, 1531, 492, 132, 494, 3, 1242, 96, 1531, 110, 3164 1540, 583, 10, 11, 12, 13, 14, 132, 590, 132, 3165 926, 1027, 1028, 117, 72, 1555, 110, 0, 76, 601, 3166 1524, 603, 1555, 286, 1396, 83, 84, 132, 1263, 1264, 3167 1265, 39, 110, 110, 195, 115, 94, 112, 112, 132, 3168 622, 109, 132, 115, 1540, 308, 309, 110, 1095, 32, 3169 115, 109, 72, 1100, 74, 75, 638, 218, 1304, 67, 3170 118, 119, 644, 83, 84, 110, 1337, 228, 132, 1085, 3171 1086, 653, 110, 655, 656, 657, 110, 1440, 1066, 565, 3172 563, 1224, 1493, 346, 564, 1053, 1321, 70, 566, 1383, 3173 1464, 1337, 567, 1565, 114, 1314, 1130, 1471, 1342, 1081, 3174 1471, 1464, 686, 686, 919, 1100, 927, 689, 1471, 699, 3175 583, 693, 980, 695, 873, 650, 724, 699, 946, 382, 3176 50, 734, 1242, 485, 1464, 707, -1, 26, 27, 28, 3177 -1, 1471, 571, 571, 64, 296, 1236, 67, 720, 721, 3178 70, 571, -1, -1, 644, -1, -1, -1, 1464, -1, 3179 1524, -1, 734, -1, -1, 1471, 72, -1, 74, 75, 3180 76, 1524, -1, 58, -1, 0, 1, 83, 84, 1440, 3181 -1, 1271, 1407, 1408, 1090, 158, -1, -1, -1, 1279, 3182 1280, 1281, -1, -1, 1524, 4, 5, 6, 7, 8, 3183 9, -1, -1, 693, 1440, 695, -1, 32, -1, 699, 3184 -1, 100, 1473, 102, 1475, -1, -1, -1, 1524, -1, 3185 1445, -1, -1, 108, -1, 50, 111, -1, 1464, 149, 3186 1236, 67, -1, -1, -1, 1471, 191, -1, -1, -1, 3187 -1, 77, 162, 198, -1, 70, 818, -1, -1, 1510, 3188 -1, 1512, -1, -1, -1, 1345, -1, -1, 830, 232, 3189 69, -1, 71, -1, -1, 1271, 1224, -1, 188, -1, 3190 -1, -1, 157, 1279, 1280, 1281, -1, -1, -1, 1540, 3191 253, 1506, 107, 119, -1, 258, -1, -1, 1524, -1, 3192 1515, 211, -1, 444, 183, -1, -1, 550, 551, 552, 3193 -1, 873, -1, 223, 193, 194, -1, -1, 880, 198, 3194 -1, 200, 201, -1, -1, 270, -1, -1, 72, 470, 3195 74, 75, 76, -1, 149, -1, 162, -1, -1, 83, 3196 84, 903, 157, 158, -1, 220, -1, -1, -1, 1345, 3197 912, -1, 914, -1, -1, -1, -1, -1, 72, 921, 3198 74, 75, 76, -1, -1, 109, 507, -1, -1, 83, 3199 84, 512, 1320, 188, 515, -1, -1, -1, -1, 324, 3200 94, -1, 944, -1, -1, -1, -1, 332, 203, 352, 3201 335, 206, 207, 873, -1, 109, 211, 223, -1, 274, 3202 880, -1, 964, -1, 118, 119, 281, -1, -1, -1, 3203 -1, -1, -1, -1, -1, -1, -1, 232, 980, 329, 3204 -1, 236, -1, 238, -1, -1, 988, 1375, -1, 991, 3205 1378, 993, 247, -1, -1, 261, -1, -1, 253, -1, 3206 266, 921, -1, 258, -1, -1, -1, -1, 672, -1, 3207 -1, -1, -1, 268, 399, 281, 419, -1, 403, -1, 3208 -1, 276, -1, -1, 10, 11, 12, 13, 14, -1, 3209 -1, 434, -1, -1, 349, 1423, 439, -1, -1, -1, 3210 1428, 1043, -1, -1, 447, 10, 11, 12, 13, 14, 3211 -1, 366, -1, 39, -1, 370, -1, 407, -1, -1, 3212 980, -1, 465, 1530, -1, -1, -1, -1, -1, -1, 3213 1458, -1, -1, -1, 39, -1, -1, 760, -1, 1081, 3214 483, 67, 485, -1, -1, 351, -1, 342, -1, -1, 3215 671, 346, -1, 1095, -1, 480, -1, 352, 1100, 680, 3216 -1, -1, 67, 684, -1, -1, -1, -1, 94, -1, 3217 365, -1, -1, -1, 369, 1117, -1, 372, 433, -1, 3218 -1, -1, -1, 109, 527, 111, -1, -1, -1, 94, 3219 -1, 795, 118, 119, -1, -1, -1, 1473, -1, 1475, 3220 -1, 805, -1, -1, 109, -1, 111, -1, -1, -1, 3221 -1, -1, -1, 118, 119, 819, 1544, -1, -1, -1, 3222 -1, 1081, 1550, -1, 419, -1, 432, -1, -1, -1, 3223 -1, -1, -1, 1561, 1510, -1, 1512, 1565, 72, 434, 3224 74, 75, 76, 449, 439, -1, 571, 572, 591, 83, 3225 84, -1, 447, -1, 72, 1197, 74, 75, 76, -1, 3226 94, -1, -1, 0, -1, 83, 84, -1, 474, -1, 3227 465, -1, -1, 468, -1, 109, 94, 111, 1220, -1, 3228 -1, -1, -1, 117, 118, 119, -1, -1, 483, -1, 3229 485, 109, 635, 636, 637, 32, -1, -1, 493, -1, 3230 118, 119, 497, -1, -1, -1, -1, -1, -1, -1, 3231 -1, 654, -1, -1, -1, -1, 575, 576, -1, -1, 3232 -1, 1263, 1264, 1265, -1, -1, -1, -1, -1, 672, 3233 -1, 526, 527, 70, 659, 590, -1, 1197, 663, -1, 3234 683, -1, -1, -1, -1, 604, -1, -1, 607, 608, 3235 -1, 610, -1, 612, 613, -1, -1, -1, 617, 618, 3236 -1, -1, -1, -1, -1, -1, 709, 622, -1, 712, 3237 -1, -1, -1, -1, -1, -1, -1, 572, 0, 1321, 3238 -1, -1, -1, 638, 905, -1, 1009, -1, -1, 595, 3239 -1, -1, -1, -1, -1, 590, 591, -1, 653, -1, 3240 -1, -1, -1, 0, 1, -1, 749, -1, 603, -1, 3241 32, -1, -1, -1, -1, -1, -1, 623, -1, -1, 3242 -1, 158, 628, 1027, 1028, -1, 621, 1050, -1, -1, 3243 -1, 626, -1, -1, -1, 32, -1, 632, -1, -1, 3244 635, 636, 637, -1, -1, -1, -1, -1, 70, -1, 3245 -1, -1, 795, -1, 1396, 1397, -1, -1, -1, 654, 3246 -1, -1, 805, -1, 807, 1407, 1408, -1, -1, 812, 3247 67, -1, 815, 70, 799, -1, 819, 672, -1, 734, 3248 -1, 1085, 1086, -1, -1, -1, -1, -1, 683, -1, 3249 -1, -1, -1, -1, 700, -1, -1, -1, -1, 758, 3250 759, -1, -1, 1445, -1, -1, -1, -1, 714, -1, 3251 -1, -1, -1, -1, 709, -1, 253, 712, -1, -1, 3252 -1, 258, -1, -1, -1, -1, 721, -1, 734, 724, 3253 72, -1, 74, 75, 76, -1, 158, -1, 881, -1, 3254 1061, 83, 84, -1, 72, -1, 74, 75, 76, -1, 3255 -1, -1, 94, 748, 749, 83, 84, -1, -1, 754, 3256 -1, 158, -1, 1505, 1506, -1, 94, 109, 911, 111, 3257 -1, -1, -1, 1515, -1, -1, 118, 119, -1, -1, 3258 -1, 109, -1, 111, -1, -1, -1, -1, 1530, 1531, 3259 118, 119, -1, 918, -1, -1, -1, -1, -1, -1, 3260 795, -1, -1, -1, -1, 811, -1, -1, -1, -1, 3261 805, -1, 807, 1555, 809, 352, -1, 812, -1, 814, 3262 815, -1, -1, 966, 819, -1, 223, -1, -1, -1, 3263 -1, 253, -1, -1, 829, -1, 258, 97, 98, 99, 3264 100, 101, 102, 103, 104, 105, 106, -1, 903, -1, 3265 -1, -1, -1, -1, -1, -1, 253, 72, -1, 74, 3266 75, 76, -1, -1, 923, -1, -1, 1271, 83, 84, 3267 -1, 131, -1, 998, -1, 1279, 1280, 1281, -1, 94, 3268 -1, -1, 419, -1, 1027, 1028, 881, 1030, 1031, -1, 3269 1015, -1, -1, -1, 109, -1, 111, 434, -1, -1, 3270 -1, -1, 439, 118, 119, -1, -1, 1050, 903, -1, 3271 447, -1, -1, -1, -1, 910, 911, -1, -1, 914, 3272 -1, 10, 11, 12, 13, 14, -1, -1, 465, -1, 3273 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3274 -1, 1345, 1085, 1086, -1, 940, 483, -1, 485, -1, 3275 39, -1, -1, 948, 949, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, -1, -1, -1, -1, 1093, -1, 3277 -1, 966, -1, -1, -1, -1, -1, -1, 67, -1, 3278 -1, -1, -1, 72, -1, 74, 75, 76, -1, -1, 3279 527, -1, 1313, -1, 83, 84, -1, 419, -1, -1, 3280 -1, -1, -1, -1, -1, 94, 1012, -1, -1, -1, 3281 1135, -1, 434, -1, 1009, -1, 1159, 439, -1, -1, 3282 109, -1, 111, -1, -1, 447, -1, 1022, 1087, 118, 3283 119, -1, 1027, 1028, -1, 1030, 1031, 434, -1, -1, 3284 -1, -1, -1, 465, -1, -1, -1, -1, -1, -1, 3285 -1, -1, -1, -1, 591, 1050, -1, -1, -1, 1202, 3286 -1, 483, -1, 485, -1, -1, -1, -1, -1, -1, 2882 0, 1, 240, 205, 186, 186, 117, 0, 43, 534, 2883 43, 43, 600, 756, 646, 1, 749, 187, 521, 0, 2884 186, 186, 186, 157, 169, 170, 749, 749, 186, 106, 2885 220, 602, 32, 186, 345, 349, 0, 188, 280, 32, 2886 157, 513, 600, 43, 874, 43, 603, 874, 349, 49, 2887 620, 32, 609, 733, 0, 983, 49, 600, 492, 571, 2888 0, 1, 496, 63, 602, 187, 66, 32, 32, 69, 2889 63, 692, 43, 66, 64, 0, 69, 1040, 39, 156, 2890 1, 600, 57, 69, 266, 266, 32, 43, 51, 1398, 2891 364, 202, 32, 63, 368, 1321, 418, 267, 82, 600, 2892 266, 266, 266, 1052, 1053, 1033, 106, 32, 266, 600, 2893 600, 262, 263, 266, 114, 72, 438, 117, 118, 109, 2894 282, 72, 1402, 96, 446, 39, 66, 695, 39, 69, 2895 28, 109, 107, 39, 39, 110, 95, 39, 82, 128, 2896 39, 66, 131, 1021, 82, 267, 109, 147, 148, 122, 2897 111, 186, 11, 186, 186, 148, 156, 157, 0, 295, 2898 1469, 161, 132, 1020, 1021, 109, 44, 45, 161, 0, 2899 129, 482, 905, 109, 488, 132, 0, 1, 72, 1128, 2900 78, 132, 905, 905, 687, 49, 186, 187, 186, 109, 2901 32, 257, 130, 1419, 187, 109, 109, 111, 109, 718, 2902 111, 32, 202, 109, 109, 111, 111, 109, 32, 111, 2903 210, 131, 43, 1040, 72, 186, 1496, 210, 49, 82, 2904 410, 1501, 222, 117, 812, 83, 84, 718, 718, 222, 2905 186, 266, 63, 266, 266, 66, 406, 115, 69, 1452, 2906 240, 1521, 85, 986, 219, 69, 112, 110, 1528, 82, 2907 114, 109, 252, 824, 812, 116, 107, 814, 114, 252, 2908 260, 44, 45, 3, 341, 265, 266, 267, 490, 812, 2909 113, 252, 272, 1486, 267, 1488, 257, 82, 111, 900, 2910 131, 793, 222, 147, 406, 396, 824, 252, 252, 49, 2911 426, 427, 924, 812, 371, 295, 3, 222, 273, 433, 2912 96, 602, 1501, 116, 109, 280, 252, 307, 0, 620, 2913 480, 812, 252, 424, 625, 589, 433, 148, 110, 430, 2914 112, 812, 812, 323, 116, 1288, 122, 252, 328, 1528, 2915 161, 114, 253, 44, 45, 328, 0, 82, 906, 131, 2916 132, 341, 504, 110, 932, 345, 210, 1225, 482, 349, 2917 350, 109, 418, 111, 114, 186, 187, 631, 480, 681, 2918 109, 116, 933, 130, 364, 110, 90, 91, 368, 1049, 2919 506, 371, 438, 348, 932, 511, 240, 132, 514, 210, 2920 446, 1211, 604, 951, 1211, 130, 608, 426, 427, 932, 2921 365, 222, 526, 72, 369, 112, 396, 1275, 116, 116, 2922 285, 125, 126, 114, 83, 84, 406, 629, 272, 526, 2923 252, 633, 130, 406, 1472, 257, 110, 1274, 1275, 55, 2924 1478, 252, 307, 308, 424, 350, 426, 427, 252, 999, 2925 430, 567, 111, 433, 745, 266, 130, 418, 112, 116, 2926 1498, 110, 116, 307, 111, 1503, 113, 116, 525, 1501, 2927 210, 1008, 1009, 130, 454, 494, 590, 438, 1386, 1387, 2928 345, 1288, 98, 130, 967, 446, 635, 636, 131, 1521, 2929 229, 112, 472, 590, 513, 116, 1528, 116, 1441, 110, 2930 480, 345, 482, 652, 484, 1448, 116, 480, 488, 248, 2931 732, 484, 110, 132, 494, 1127, 381, 328, 116, 116, 2932 130, 482, 647, 484, 666, 656, 506, 941, 508, 981, 2933 824, 511, 272, 513, 514, 132, 1394, 687, 349, 109, 2934 484, 521, 109, 824, 116, 525, 526, 109, 1099, 803, 2935 109, 111, 111, 113, 808, 295, 1499, 1394, 484, 578, 2936 132, 710, 109, 654, 484, 116, 467, 307, 473, 1117, 2937 130, 4, 5, 6, 7, 8, 9, 116, 194, 484, 2938 110, 132, 426, 427, 116, 687, 116, 116, 116, 116, 2939 570, 571, 116, 132, 736, 406, 418, 109, 578, 116, 2940 132, 217, 1085, 132, 132, 132, 109, 1090, 132, 589, 2941 590, 227, 117, 904, 594, 132, 438, 116, 123, 124, 2942 600, 116, 602, 109, 446, 111, 110, 528, 1288, 1177, 2943 1178, 745, 533, 132, 1441, 681, 69, 132, 71, 110, 2944 620, 1448, 896, 937, 846, 625, 72, 627, 74, 75, 2945 494, 631, 801, 110, 634, 635, 636, 83, 84, 72, 2946 110, 707, 484, 112, 590, 110, 621, 116, 112, 513, 2947 83, 84, 652, 484, 654, 109, 910, 488, 912, 295, 2948 484, 582, 637, 109, 549, 550, 551, 744, 114, 112, 2949 109, 861, 1499, 116, 72, 809, 651, 115, 72, 132, 2950 74, 75, 1362, 109, 684, 83, 84, 687, 999, 83, 2951 84, 881, 809, 109, 454, 111, 72, 622, 74, 75, 2952 681, 85, 86, 87, 109, 943, 111, 83, 84, 132, 2953 710, 711, 712, 111, 578, 109, 938, 1115, 718, 719, 2954 114, 1119, 867, 905, 905, 109, 707, 111, 64, 113, 2955 114, 109, 653, 111, 655, 112, 110, 907, 114, 905, 2956 905, 905, 116, 109, 744, 745, 506, 905, 508, 749, 2957 750, 511, 905, 109, 514, 111, 620, 732, 109, 70, 2958 111, 625, 109, 74, 745, 1445, 77, 1447, 79, 600, 2959 904, 602, 1505, 698, 132, 86, 556, 557, 558, 559, 2960 1305, 3, 1505, 1505, 705, 907, 114, 712, 10, 11, 2961 12, 13, 14, 793, 4, 5, 6, 7, 8, 9, 2962 110, 801, 109, 803, 111, 805, 116, 443, 808, 809, 2963 1012, 114, 812, 109, 1382, 111, 72, 39, 74, 75, 2964 1500, 117, 118, 33, 824, 72, 903, 83, 84, 114, 2965 1398, 132, 110, 469, 132, 1146, 83, 84, 116, 681, 2966 10, 11, 12, 13, 14, 67, 72, 110, 1122, 109, 2967 76, 109, 110, 116, 82, 111, 687, 83, 84, 69, 2968 110, 71, 49, 809, 111, 707, 116, 110, 109, 39, 2969 506, 756, 109, 116, 874, 511, 63, 112, 514, 66, 2970 805, 82, 69, 109, 118, 111, 1020, 718, 719, 110, 2971 1035, 117, 118, 874, 127, 116, 896, 67, 88, 89, 2972 1468, 1469, 213, 903, 904, 905, 72, 907, 4, 5, 2973 6, 7, 8, 9, 1225, 1085, 110, 83, 84, 919, 2974 1090, 128, 116, 904, 684, 110, 94, 109, 874, 111, 2975 30, 116, 932, 933, 874, 117, 118, 937, 131, 109, 2976 72, 111, 942, 943, 76, 111, 111, 117, 118, 874, 2977 109, 83, 84, 1115, 110, 109, 942, 1119, 1120, 112, 2978 116, 148, 109, 1085, 111, 0, 1, 967, 1090, 112, 2979 117, 118, 110, 69, 161, 71, 110, 109, 1481, 119, 2980 120, 812, 116, 83, 84, 117, 118, 112, 10, 11, 2981 12, 13, 14, 824, 29, 30, 1107, 32, 110, 999, 2982 187, 110, 942, 110, 116, 92, 93, 72, 43, 74, 2983 75, 76, 1146, 72, 49, 74, 75, 39, 83, 84, 2984 1020, 1021, 57, 210, 83, 84, 110, 1530, 63, 115, 2985 116, 66, 874, 669, 69, 222, 957, 109, 110, 111, 2986 1040, 352, 678, 354, 109, 67, 682, 110, 83, 84, 2987 874, 109, 117, 118, 1190, 1191, 72, 1193, 979, 1040, 2988 76, 110, 983, 110, 1200, 110, 1202, 83, 84, 116, 2989 112, 116, 107, 1235, 905, 110, 907, 1002, 110, 943, 2990 1080, 111, 117, 114, 116, 1085, 110, 109, 116, 111, 2991 1090, 131, 116, 109, 1040, 117, 118, 110, 111, 1099, 2992 1040, 117, 118, 506, 66, 508, 937, 1107, 511, 58, 2993 59, 514, 1033, 148, 999, 1040, 115, 116, 942, 44, 2994 45, 156, 1122, 552, 553, 72, 161, 74, 75, 76, 2995 1207, 442, 109, 110, 111, 999, 83, 84, 560, 561, 2996 1274, 328, 554, 555, 244, 114, 1146, 114, 109, 110, 2997 111, 186, 187, 109, 112, 1040, 118, 110, 110, 919, 2998 1322, 112, 109, 29, 1326, 1146, 112, 202, 112, 3, 2999 117, 118, 109, 110, 111, 210, 10, 11, 12, 13, 3000 14, 58, 59, 60, 219, 112, 116, 222, 1188, 1189, 3001 1248, 1249, 1250, 110, 229, 130, 130, 130, 1040, 161, 3002 110, 112, 114, 1189, 112, 39, 115, 1207, 110, 244, 3003 115, 1211, 115, 248, 109, 116, 1040, 252, 253, 406, 3004 1, 110, 1358, 110, 72, 1225, 74, 75, 76, 1229, 3005 1211, 266, 267, 67, 132, 83, 84, 116, 273, 110, 3006 110, 110, 110, 1229, 1225, 280, 110, 110, 1188, 1189, 3007 110, 116, 110, 110, 1085, 110, 110, 110, 110, 1090, 3008 222, 1423, 898, 1188, 110, 1211, 110, 1378, 49, 110, 3009 110, 1211, 115, 874, 1274, 1275, 29, 1515, 110, 130, 3010 380, 131, 112, 1283, 112, 116, 1211, 110, 1288, 1229, 3011 110, 116, 110, 328, 130, 116, 112, 114, 260, 110, 3012 110, 464, 110, 265, 116, 112, 110, 1288, 110, 110, 3013 116, 116, 112, 348, 349, 10, 11, 12, 13, 14, 3014 1080, 1321, 109, 1505, 1505, 106, 109, 1248, 1249, 1250, 3015 365, 109, 109, 114, 369, 1321, 1506, 109, 130, 1505, 3016 1505, 1505, 1288, 1283, 39, 380, 3, 1505, 1288, 112, 3017 132, 115, 1505, 10, 11, 12, 13, 14, 1283, 110, 3018 1530, 396, 110, 1288, 110, 1189, 147, 128, 115, 1211, 3019 1481, 406, 67, 115, 464, 156, 114, 695, 1378, 112, 3020 132, 1321, 39, 110, 1506, 116, 112, 1211, 350, 424, 3021 112, 491, 110, 493, 1394, 430, 110, 432, 110, 112, 3022 110, 112, 1377, 112, 112, 1229, 112, 112, 1530, 72, 3023 67, 74, 75, 76, 109, 1051, 111, 47, 115, 1419, 3024 83, 84, 117, 118, 72, 206, 74, 75, 76, 210, 3025 132, 132, 467, 1419, 132, 83, 84, 472, 132, 132, 3026 110, 1441, 1043, 115, 130, 480, 1288, 115, 1448, 484, 3027 1450, 110, 1452, 488, 112, 109, 491, 112, 493, 240, 3028 1441, 109, 112, 112, 1288, 1386, 1387, 1448, 786, 431, 3029 1505, 112, 1505, 1505, 112, 110, 110, 60, 109, 1419, 3030 112, 1481, 66, 112, 109, 132, 1486, 110, 1488, 110, 3031 114, 272, 76, 528, 275, 1441, 112, 1321, 533, 1499, 3032 112, 1441, 1448, 1424, 110, 1505, 1506, 670, 1448, 112, 3033 110, 473, 109, 1506, 295, 1515, 1441, 96, 1499, 96, 3034 85, 86, 87, 1448, 109, 132, 307, 115, 110, 72, 3035 1530, 74, 75, 76, 118, 110, 110, 1530, 110, 42, 3036 83, 84, 642, 116, 109, 863, 111, 582, 113, 114, 3037 130, 132, 110, 1499, 589, 110, 132, 96, 96, 1499, 3038 341, 1482, 132, 110, 345, 600, 109, 602, 132, 110, 3039 1491, 132, 112, 110, 1499, 110, 132, 161, 112, 115, 3040 670, 109, 132, 364, 115, 115, 621, 368, 906, 110, 3041 371, 691, 110, 693, 110, 1419, 110, 697, 1056, 1441, 3042 132, 564, 637, 562, 977, 565, 1448, 642, 563, 566, 3043 1211, 1211, 1469, 1364, 1540, 1298, 651, 1441, 653, 654, 3044 655, 1120, 1326, 1448, 1448, 912, 789, 66, 684, 1071, 3045 684, 1090, 594, 951, 920, 697, 799, 582, 222, 971, 3046 867, 648, 722, 1229, 83, 426, 427, 939, 570, 484, 3047 813, 1515, 687, 732, 570, 570, 691, 1499, 693, -1, 3048 622, 1297, 697, -1, -1, 627, -1, -1, 986, -1, 3049 705, -1, -1, 454, 1505, 1499, 260, -1, -1, 118, 3050 -1, 265, -1, 718, 719, -1, 467, -1, -1, -1, 3051 1450, -1, 1452, -1, -1, -1, 280, 732, -1, 789, 3052 -1, -1, -1, 1304, -1, -1, -1, -1, -1, 799, 3053 -1, 492, -1, 494, -1, 496, -1, -1, -1, 1037, 3054 -1, -1, 161, 813, -1, 506, 1486, 508, 1488, -1, 3055 511, -1, 513, 514, -1, -1, 698, 57, -1, 10, 3056 11, 12, 13, 14, 525, -1, -1, -1, -1, 72, 3057 712, 74, 75, 76, -1, 1356, -1, -1, 1359, -1, 3058 83, 84, -1, -1, -1, -1, 350, 867, 39, -1, 3059 -1, -1, -1, 873, -1, -1, -1, 812, -1, -1, 3060 -1, -1, -1, 222, -1, -1, 109, 107, 111, 824, 3061 110, -1, -1, -1, 117, 118, 67, 578, -1, 1117, 3062 -1, 1402, -1, -1, -1, -1, 1407, 130, 589, -1, 3063 -1, -1, -1, 1449, 914, 1451, -1, -1, -1, -1, 3064 -1, 260, -1, -1, -1, -1, 265, -1, -1, -1, 3065 -1, -1, 867, -1, 1435, -1, 156, 670, 873, 620, 3066 -1, -1, -1, 805, 625, -1, -1, 431, -1, 1485, 3067 631, 1487, 0, 1, 1017, 1018, -1, -1, -1, 1177, 3068 1178, 896, -1, -1, 448, -1, -1, -1, -1, -1, 3069 905, 971, 907, -1, -1, -1, -1, -1, -1, 914, 3070 -1, -1, -1, -1, 32, -1, -1, -1, -1, 473, 3071 -1, -1, -1, 1529, -1, 1531, -1, -1, -1, 219, 3072 -1, 49, 937, 684, -1, -1, -1, -1, 1544, 1545, 3073 -1, 350, 1075, 1076, -1, -1, -1, -1, 1519, -1, 3074 -1, 69, 957, -1, 1525, -1, -1, 1017, 1018, -1, 3075 -1, -1, -1, -1, -1, 1536, 971, -1, -1, 1540, 3076 -1, 722, -1, -1, 979, -1, -1, -1, 983, 0, 3077 1, -1, -1, 273, -1, -1, 789, -1, 106, -1, 3078 280, -1, -1, 744, -1, -1, 799, -1, -1, -1, 3079 -1, 1071, -1, -1, -1, 0, -1, -1, -1, -1, 3080 813, 32, -1, -1, -1, 1075, 1076, -1, -1, -1, 3081 -1, -1, 431, -1, -1, -1, -1, -1, 1033, -1, 3082 148, -1, -1, -1, -1, -1, -1, 32, 156, 157, 3083 594, -1, -1, -1, -1, 66, -1, -1, 69, -1, 3084 -1, -1, 803, -1, -1, -1, -1, 808, 348, -1, 3085 -1, -1, -1, -1, 473, -1, 1071, -1, 622, 187, 3086 1002, -1, -1, 627, 69, 365, -1, -1, -1, 369, 3087 1085, -1, -1, -1, 202, 1090, -1, 205, 206, -1, 3088 1223, -1, 210, -1, 1382, -1, -1, -1, -1, -1, 3089 -1, -1, 1107, -1, -1, -1, -1, -1, -1, -1, 3090 1398, -1, -1, 231, 1184, -1, -1, 235, -1, 237, 3091 -1, -1, 1255, -1, -1, -1, -1, -1, 246, -1, 3092 1263, 1264, 1265, -1, 252, -1, 157, -1, -1, 257, 3093 -1, -1, 432, -1, 698, 896, -1, -1, -1, 267, 3094 -1, -1, 903, -1, -1, -1, -1, 275, 712, -1, 3095 -1, 0, 157, 1223, -1, -1, -1, -1, 919, -1, 3096 -1, 72, -1, 74, 75, 76, -1, -1, 732, 1184, 3097 1468, 1469, 83, 84, -1, 594, -1, -1, -1, -1, 3098 941, 942, 943, 32, 1327, 1255, -1, -1, -1, -1, 3099 -1, 222, 1207, 1263, 1264, 1265, -1, -1, 109, -1, 3100 111, -1, -1, 622, 1017, 1018, 117, 118, 627, -1, 3101 -1, -1, -1, 341, -1, -1, -1, 345, -1, -1, 3102 69, 252, -1, 351, -1, -1, 231, -1, -1, -1, 3103 -1, -1, -1, 1248, 1249, 1250, 364, -1, 999, -1, 3104 368, 805, -1, 371, -1, -1, 1188, 252, -1, -1, 3105 -1, -1, 257, -1, -1, -1, -1, 1327, -1, -1, 3106 -1, -1, 1075, 1076, -1, -1, -1, -1, -1, -1, 3107 72, -1, 74, 75, 76, -1, -1, -1, -1, 698, 3108 -1, 83, 84, 72, -1, 74, 75, 76, -1, 589, 3109 418, -1, -1, 712, 83, 84, -1, -1, -1, -1, 3110 -1, -1, -1, -1, -1, 433, -1, 109, 157, 111, 3111 438, -1, -1, -1, -1, 117, 118, -1, 446, 1080, 3112 109, 621, 111, -1, -1, -1, -1, -1, 117, 118, 3113 -1, -1, -1, -1, -1, -1, 464, 637, -1, 467, 3114 -1, 1283, -1, -1, -1, -1, 351, -1, -1, -1, 3115 -1, 651, -1, -1, 482, -1, 484, -1, -1, -1, 3116 -1, 1122, 1377, 1378, 492, -1, -1, -1, 496, -1, 3117 -1, 1386, 1387, 97, 98, 99, 100, 101, 102, 103, 3118 104, 105, 106, -1, -1, -1, 805, -1, -1, -1, 3119 -1, -1, -1, -1, -1, -1, -1, 525, 526, -1, 3120 -1, -1, 433, 252, -1, -1, -1, 131, 257, 1424, 3121 -1, -1, -1, 418, -1, -1, -1, -1, -1, -1, 3122 -1, -1, -1, -1, -1, -1, -1, -1, 433, -1, 3123 -1, -1, 732, 438, -1, -1, -1, -1, 1002, -1, 3124 -1, 446, 1255, 571, -1, -1, 1207, -1, -1, -1, 3125 1263, 1264, 1265, 484, -1, -1, -1, -1, -1, 464, 3126 -1, 589, 590, -1, -1, -1, 1481, 1482, 1229, -1, 3127 -1, -1, -1, -1, 602, -1, 1491, 482, -1, 484, 3128 -1, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3129 1505, 1506, 620, -1, -1, 526, -1, 625, -1, -1, 3130 -1, -1, 351, 631, -1, -1, 634, 635, 636, -1, 3131 -1, -1, 66, -1, 1327, 1530, -1, -1, 72, -1, 3132 -1, 526, 76, -1, 652, 79, 80, 81, 82, 83, 3133 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3134 -1, -1, 670, -1, -1, 10, 11, 12, 13, 14, 3135 -1, -1, -1, 681, -1, 109, -1, 111, -1, 590, 3136 1321, -1, -1, 117, 118, 119, 120, 121, 122, 418, 3137 -1, -1, -1, -1, 39, -1, 130, -1, -1, 707, 3138 -1, -1, 710, 1002, 433, 590, -1, -1, -1, 438, 3139 -1, 719, -1, -1, 722, -1, 896, 446, -1, -1, 3140 -1, -1, 67, 634, 635, 636, -1, 72, -1, 74, 3141 75, 76, -1, -1, -1, 464, 744, 745, 83, 84, 3142 -1, 652, 750, -1, 1188, -1, -1, -1, -1, 634, 3143 635, 636, -1, 482, -1, 484, -1, 10, 11, 12, 3144 13, 14, -1, -1, 109, -1, 111, 652, -1, -1, 3145 -1, -1, 117, 118, -1, -1, -1, -1, 1419, -1, 3146 -1, 789, -1, -1, -1, 670, 39, -1, -1, -1, 3147 -1, 799, -1, 801, -1, 803, 681, 526, 806, 710, 3148 808, 809, -1, -1, -1, 813, -1, -1, -1, 1450, 3149 -1, 1452, -1, -1, 67, 823, -1, -1, -1, 72, 3150 -1, -1, 707, 76, -1, 710, -1, -1, -1, -1, 3151 83, 84, -1, -1, -1, -1, -1, -1, -1, 1283, 3152 -1, 0, -1, -1, -1, 1486, -1, 1488, -1, -1, 3153 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3154 745, 590, -1, -1, 117, 118, 874, -1, 0, -1, 3155 190, -1, -1, 32, 1515, -1, -1, 197, -1, -1, 3156 -1, -1, -1, -1, -1, -1, -1, -1, 896, 1188, 3157 801, -1, -1, -1, -1, 903, 904, -1, 809, 907, 3158 32, -1, -1, -1, 789, 634, 635, 636, -1, -1, 3159 69, -1, -1, -1, 799, -1, 801, -1, -1, -1, 3160 -1, 806, -1, 652, 809, 933, -1, -1, 813, -1, 3161 -1, -1, -1, 941, 942, -1, -1, 69, -1, -1, 3162 -1, 670, -1, -1, -1, -1, -1, -1, -1, 269, 3163 -1, -1, 681, -1, -1, -1, -1, -1, -1, -1, 3164 -1, -1, -1, 874, -1, -1, -1, -1, -1, -1, 3165 -1, -1, -1, -1, -1, -1, -1, -1, 707, -1, 3166 -1, 710, -1, -1, 1283, -1, -1, -1, -1, 874, 3167 -1, 999, -1, -1, -1, -1, -1, -1, 157, -1, 3168 -1, -1, -1, 323, 1012, -1, -1, -1, -1, 1017, 3169 1018, 331, 1020, 1021, 334, -1, 745, -1, -1, 904, 3170 -1, -1, -1, -1, -1, 157, -1, 1207, -1, -1, 3171 -1, 942, 1040, -1, -1, 3, 4, 5, 6, 7, 3172 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3173 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3174 789, -1, 30, 31, 32, -1, -1, 1075, 1076, -1, 3175 799, 39, 801, -1, -1, -1, -1, 806, 398, -1, 3176 809, -1, 402, -1, 813, -1, -1, -1, -1, -1, 3177 -1, -1, -1, 252, -1, -1, -1, -1, 257, 67, 3178 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1020, 3179 1021, -1, -1, -1, 1122, 83, 84, -1, -1, -1, 3180 252, -1, -1, -1, -1, 257, -1, -1, -1, 1040, 3181 -1, -1, 1017, 1018, -1, 1020, 1021, -1, 1146, -1, 3182 -1, 109, -1, 111, -1, 874, -1, -1, -1, 117, 3183 118, -1, -1, -1, -1, 1040, -1, -1, -1, 479, 3184 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3185 -1, -1, -1, -1, -1, 904, -1, -1, -1, -1, 3186 -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, 3187 1075, 1076, 351, -1, 39, -1, -1, 1377, -1, 1207, 3188 -1, -1, -1, 1211, -1, -1, -1, -1, -1, -1, 3189 -1, -1, -1, -1, -1, 1223, -1, 1225, -1, 351, 3190 -1, 1229, 67, -1, -1, -1, -1, 72, -1, 74, 3191 75, 76, -1, -1, -1, 26, 27, 28, 83, 84, 3192 -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, 3193 570, 571, -1, -1, -1, 1263, 1264, 1265, -1, 418, 3194 -1, 1146, -1, -1, 109, -1, 1274, 1275, -1, -1, 3195 -1, -1, 117, 118, 433, -1, -1, 1188, 1189, 438, 3196 1288, -1, -1, -1, -1, -1, 418, 446, 1017, 1018, 3197 -1, 1020, 1021, -1, -1, -1, -1, -1, -1, -1, 3198 1211, 433, -1, -1, 1189, 464, 438, -1, 99, -1, 3199 101, 1040, -1, 1321, 446, -1, -1, -1, 1229, 1327, 3200 -1, -1, -1, 482, -1, 484, 1211, -1, -1, -1, 3201 -1, -1, 464, -1, -1, 126, -1, 657, 1223, -1, 3202 1225, 661, -1, -1, -1, -1, 1075, 1076, -1, -1, 3203 482, -1, 484, -1, -1, -1, -1, -1, -1, -1, 3204 -1, -1, -1, 1274, 1275, -1, -1, 526, -1, -1, 3205 1255, -1, 1283, -1, -1, -1, -1, 1288, 1263, 1264, 3206 1265, -1, -1, -1, -1, -1, 1394, -1, -1, 1274, 3207 1275, 182, -1, -1, 526, -1, -1, -1, -1, 190, 3208 -1, 192, 193, 1288, -1, -1, 197, -1, 199, 200, 3209 1321, 1419, -1, 53, -1, 55, -1, 1146, 58, 59, 3210 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 3211 -1, 590, -1, 1441, -1, -1, -1, 77, -1, -1, 3212 1448, -1, 1327, -1, -1, -1, -1, -1, -1, 89, 3213 90, -1, -1, -1, 26, 27, 28, -1, 590, -1, 3214 1189, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3215 14, -1, -1, 793, -1, 634, 635, 636, 269, -1, 3216 -1, -1, 1211, 1394, -1, -1, -1, -1, -1, -1, 3217 -1, 1499, -1, 652, 1223, 39, 1225, -1, 1506, -1, 3218 -1, -1, 634, 635, 636, -1, -1, -1, 1419, 1394, 3219 -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, 3220 652, -1, 681, 67, -1, -1, 1255, 99, 72, 101, 3221 1441, -1, 76, -1, 1263, 1264, 1265, 1448, 670, 83, 3222 84, -1, -1, -1, -1, 1274, 1275, -1, 707, 681, 3223 -1, 710, -1, -1, -1, -1, 1441, -1, -1, 1288, 3224 -1, -1, -1, 1448, -1, 109, -1, -1, -1, -1, 3225 -1, -1, -1, 117, 118, 707, -1, -1, 710, 10, 3226 11, 12, 13, 14, -1, -1, 745, -1, 1499, -1, 3227 -1, 911, -1, -1, -1, -1, -1, -1, 1327, -1, 3228 -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 3229 182, -1, -1, 745, 1499, -1, -1, -1, -1, -1, 3230 192, 193, -1, -1, -1, 197, -1, 199, 200, -1, 3231 789, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3232 799, 72, 801, 74, 75, 76, -1, 806, -1, -1, 3233 809, -1, 83, 84, 813, -1, -1, 789, -1, 10, 3234 11, 12, 13, 14, -1, 1394, -1, 799, 988, 801, 3235 -1, -1, -1, -1, 806, -1, -1, 809, 109, -1, 3236 111, 813, -1, -1, -1, 1005, 117, 118, 39, -1, 3237 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3238 -1, -1, -1, -1, 344, -1, 346, -1, -1, -1, 3239 -1, -1, 1441, -1, -1, 874, 67, 357, 358, 1448, 3240 39, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3241 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3242 -1, -1, 874, -1, -1, 904, -1, -1, 67, -1, 3243 -1, -1, -1, 72, -1, 74, 75, 76, 109, -1, 3244 111, -1, -1, 1083, 83, 84, 117, 118, -1, -1, 3245 1499, -1, 904, -1, -1, -1, -1, -1, -1, -1, 3246 -1, -1, -1, 574, 575, -1, -1, -1, -1, -1, 3247 109, -1, -1, -1, -1, -1, -1, -1, 117, 118, 3248 -1, -1, -1, 1123, -1, -1, -1, -1, -1, -1, 3249 -1, -1, 603, -1, -1, 606, 607, -1, 609, -1, 3250 611, 612, -1, -1, -1, 616, 617, 3, 4, 5, 3251 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3252 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3253 26, 27, 28, -1, 30, 31, 32, 33, 1017, 1018, 3254 36, 1020, 1021, 39, -1, -1, -1, -1, -1, -1, 3287 3255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3288 -1, 1224, -1, -1, -1, -1, -1, -1, 485, -1, 3289 1085, 1086, -1, 1236, -1, 1238, -1, -1, 635, 636, 3290 637, -1, -1, -1, -1, 527, -1, -1, -1, -1, 3291 -1, -1, -1, -1, -1, -1, -1, 654, -1, -1, 3292 -1, -1, -1, -1, -1, -1, -1, -1, 1271, -1, 3293 527, -1, -1, -1, 0, 672, 1279, 1280, 1281, 1134, 3294 -1, -1, -1, -1, -1, -1, 683, 1290, 1291, -1, 3295 -1, 1472, -1, 1474, -1, -1, -1, -1, -1, -1, 3296 1219, 1304, -1, -1, 1159, 1220, 32, -1, -1, 591, 3297 -1, -1, 709, -1, -1, 712, -1, -1, -1, -1, 3298 10, 11, 12, 13, 14, -1, -1, -1, 1509, -1, 3299 1511, -1, -1, -1, 591, 1201, -1, -1, -1, -1, 3300 -1, -1, 1345, -1, 70, -1, -1, 1202, -1, 39, 3301 -1, -1, 749, 635, 636, 637, -1, -1, -1, -1, 3302 -1, -1, -1, -1, -1, 1220, -1, -1, -1, 1224, 3303 -1, -1, 654, 1554, -1, 1556, -1, 67, 635, 636, 3304 637, 1236, 72, 1238, 74, 75, 76, 1242, 1569, 1570, 3305 672, -1, -1, 83, 84, -1, -1, 654, 795, -1, 3306 -1, 683, -1, -1, 94, -1, -1, -1, 805, -1, 3307 807, -1, 1415, -1, -1, 812, 1271, -1, 815, 109, 3308 -1, 111, 819, -1, 1279, 1280, 1281, 709, 118, 119, 3309 712, -1, 158, 1299, -1, 1290, 1291, -1, -1, -1, 3310 -1, -1, -1, -1, 10, 11, 12, 13, 14, 1304, 3311 -1, -1, -1, -1, -1, 712, -1, -1, -1, -1, 3312 -1, 1464, -1, -1, -1, -1, -1, 749, 1471, -1, 3313 -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3314 -1, 1396, 1337, -1, 881, -1, -1, -1, -1, -1, 3315 1345, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3316 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3317 76, -1, -1, 795, 911, -1, -1, 83, 84, -1, 3318 -1, 1524, -1, 805, -1, 807, -1, 253, 94, -1, 3319 812, -1, 258, 815, -1, -1, -1, 819, -1, -1, 3320 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3321 807, -1, 118, 119, -1, -1, -1, -1, 815, -1, 3322 1415, -1, -1, -1, -1, -1, -1, -1, -1, 966, 3323 -1, 54, -1, 56, -1, -1, 59, 60, 61, -1, 3324 63, -1, -1, -1, -1, 1440, 10, 11, 12, 13, 3325 14, -1, -1, -1, -1, 78, -1, -1, -1, 881, 3326 -1, -1, -1, -1, -1, -1, -1, 90, 91, 1464, 3327 -1, -1, -1, -1, -1, 39, 1471, 10, 11, 12, 3328 13, 14, -1, -1, 881, -1, 352, -1, -1, 911, 3329 1027, 1028, -1, 1030, 1031, -1, -1, -1, -1, -1, 3330 -1, -1, -1, 67, -1, -1, 39, -1, 72, -1, 3331 74, 75, 76, 1050, -1, -1, -1, -1, -1, 83, 3332 84, -1, -1, -1, -1, -1, -1, -1, -1, 1524, 3333 94, -1, -1, -1, 67, -1, 1531, -1, -1, 72, 3334 -1, 74, 75, 76, 966, 109, -1, -1, 1085, 1086, 3335 83, 84, 949, 419, 118, 119, -1, -1, -1, -1, 3336 -1, 94, -1, 10, 11, 12, 13, 14, 434, 966, 3337 -1, -1, -1, 439, -1, -1, 109, -1, -1, -1, 3338 -1, 447, -1, -1, -1, 118, 119, -1, -1, -1, 3339 -1, -1, 39, -1, 10, 11, 12, 13, 14, 465, 3340 -1, -1, -1, -1, -1, 1027, 1028, -1, 1030, 1031, 3341 -1, -1, -1, -1, -1, -1, -1, 483, -1, 485, 3342 67, -1, 1159, 39, -1, 72, -1, -1, 1050, 76, 3343 -1, -1, -1, 1030, 1031, -1, 83, 84, -1, -1, 3344 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3345 -1, 67, -1, 1050, -1, -1, 72, -1, -1, -1, 3346 76, 527, 109, 1085, 1086, 1202, -1, 83, 84, -1, 3347 -1, 118, 119, -1, -1, -1, -1, -1, 94, -1, 3348 -1, -1, -1, -1, -1, -1, -1, 1224, -1, -1, 3349 -1, -1, -1, 109, -1, -1, -1, -1, -1, 1236, 3350 -1, 1238, 118, 119, 10, 11, 12, 13, 14, 15, 3256 -1, 1040, -1, -1, -1, 1017, 1018, -1, 1020, 1021, 3257 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3258 -1, -1, 78, -1, -1, -1, 7, -1, 1040, 10, 3259 11, 12, 13, 14, -1, -1, 1075, 1076, -1, -1, 3260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, 111, 37, 38, 39, 40, 3262 -1, 117, 118, 1075, 1076, -1, -1, -1, -1, -1, 3263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3264 -1, -1, -1, 754, 755, 66, 67, -1, -1, -1, 3265 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3266 81, 82, 83, 84, -1, 86, 87, 1146, -1, -1, 3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3268 -1, -1, 574, 575, -1, -1, -1, -1, 109, -1, 3269 111, -1, -1, -1, 1146, -1, 117, 118, 119, 120, 3270 121, 122, -1, -1, -1, -1, -1, -1, -1, -1, 3271 1189, 603, -1, -1, 606, 607, -1, 609, -1, 611, 3272 612, -1, -1, -1, 616, 617, -1, -1, -1, -1, 3273 -1, -1, 1211, -1, -1, -1, -1, 1189, -1, 699, 3274 -1, 701, -1, -1, 1223, -1, 1225, -1, 708, 709, 3275 -1, -1, -1, 713, -1, -1, -1, -1, -1, 1211, 3276 -1, -1, -1, -1, -1, 725, -1, -1, -1, -1, 3277 730, 1223, -1, 1225, -1, -1, 1255, -1, -1, -1, 3278 -1, -1, -1, -1, 1263, 1264, 1265, -1, -1, -1, 3279 -1, -1, -1, -1, -1, 1274, 1275, -1, 758, -1, 3280 911, -1, -1, 1255, -1, 916, -1, -1, -1, 1288, 3281 -1, 1263, 1264, 1265, -1, -1, -1, -1, -1, -1, 3282 -1, -1, 1274, 1275, -1, -1, -1, -1, -1, -1, 3283 -1, -1, -1, -1, -1, -1, 1288, -1, -1, -1, 3284 -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, 3285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3286 49, -1, 754, 755, -1, -1, -1, -1, -1, -1, 3287 -1, -1, -1, -1, -1, 1327, -1, 66, -1, -1, 3288 7, -1, -1, 10, 11, 12, 13, 14, -1, -1, 3289 -1, -1, -1, -1, -1, -1, -1, 857, 858, 859, 3290 860, -1, 862, -1, -1, -1, -1, -1, -1, -1, 3291 37, 38, 39, 40, -1, 1394, -1, 877, -1, -1, 3292 -1, -1, -1, -1, -1, 114, -1, -1, -1, 118, 3293 -1, 891, -1, -1, -1, -1, -1, -1, -1, 66, 3294 67, -1, 1394, -1, -1, 72, -1, -1, -1, 76, 3295 -1, -1, 79, 80, 81, 82, 83, 84, 147, 86, 3296 87, -1, 1441, -1, -1, -1, 1077, -1, 157, 1448, 3297 -1, 931, 161, -1, -1, -1, -1, -1, -1, -1, 3298 -1, -1, 109, -1, 111, -1, -1, -1, -1, 1441, 3299 117, 118, 119, 120, 121, 122, 1448, 10, 11, 12, 3300 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3301 23, 24, 25, 26, 27, -1, 976, 30, 31, 32, 3302 1499, 210, 982, -1, 916, -1, 39, 987, -1, -1, 3303 -1, -1, 992, 222, 994, -1, -1, -1, 998, -1, 3304 1000, 1001, -1, -1, 1004, -1, -1, 1499, -1, -1, 3305 -1, 240, -1, 1013, 67, -1, -1, -1, -1, -1, 3306 -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, 3307 -1, 1031, 1032, -1, -1, -1, 265, -1, -1, -1, 3308 -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, 3309 -1, -1, -1, -1, -1, 1206, -1, -1, 1058, -1, 3310 -1, 1061, -1, -1, 117, 118, 295, -1, -1, -1, 3311 -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, 3312 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 3313 -1, -1, -1, -1, 76, -1, 78, -1, 80, -1, 3314 -1, -1, -1, -1, 1104, 87, -1, -1, -1, -1, 3315 1110, 1111, -1, -1, -1, -1, 345, -1, -1, -1, 3316 -1, 350, -1, -1, -1, -1, -1, -1, -1, -1, 3317 1130, -1, -1, 1133, -1, -1, 118, 1137, 120, 121, 3318 122, -1, -1, -1, -1, 1077, -1, -1, -1, -1, 3319 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, 1163, -1, 1165, 1166, 1167, 1168, -1, 3321 -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, 3322 -1, 1181, -1, 1183, -1, -1, -1, 1187, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, 426, 427, -1, 3324 -1, -1, -1, -1, 433, -1, -1, -1, -1, -1, 3325 -1, -1, -1, -1, -1, -1, 1216, 1217, -1, -1, 3326 -1, -1, -1, -1, -1, 454, -1, -1, -1, -1, 3327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3328 222, -1, 224, 225, 226, -1, -1, -1, -1, -1, 3329 -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, 3330 -1, -1, -1, -1, -1, 494, 1266, 1267, -1, -1, 3331 -1, -1, -1, -1, 1206, -1, 1276, 506, 260, 508, 3332 -1, -1, 511, 265, 513, 514, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, -1, -1, 526, 280, -1, 3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3351 3336 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3352 26, 27, 345, -1, 347, 591, -1, -1, -1, -1, 3353 -1, -1, -1, 39, 1271, 358, 359, 1159, -1, -1, 3354 -1, -1, 1279, 1280, 1281, -1, -1, -1, -1, -1, 3355 -1, -1, -1, 1290, 1291, -1, -1, -1, -1, -1, 3356 -1, 67, -1, -1, -1, -1, -1, 1304, -1, 635, 3357 636, 637, -1, -1, -1, -1, -1, -1, -1, -1, 3358 1202, -1, -1, -1, -1, -1, -1, -1, 654, -1, 3359 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3360 -1, -1, 1224, -1, 1201, 1202, 672, -1, 1345, -1, 3361 -1, -1, -1, -1, 1236, -1, 1238, 683, -1, 66, 3362 -1, -1, -1, -1, -1, 72, -1, 1224, -1, 76, 3363 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3364 87, -1, -1, 709, -1, 1242, 712, 94, -1, 1271, 3365 -1, -1, -1, -1, -1, -1, -1, 1279, 1280, 1281, 3366 -1, -1, 109, -1, 111, -1, -1, 114, 1290, 1291, 3367 -1, 118, 119, 120, 121, 122, 123, -1, 1415, -1, 3368 -1, -1, 1304, 749, -1, -1, -1, -1, -1, -1, 3369 -1, -1, -1, 1290, 1291, -1, -1, -1, -1, -1, 3370 -1, -1, 1299, -1, -1, -1, -1, 1304, -1, -1, 3337 26, 27, 28, -1, 30, 31, 32, 1337, -1, 1339, 3338 1340, 1341, -1, 39, -1, -1, 328, -1, -1, 578, 3339 -1, 1351, -1, -1, -1, -1, -1, -1, -1, -1, 3340 1360, 590, -1, -1, -1, 594, -1, -1, 350, -1, 3341 -1, 67, -1, 355, 356, -1, 72, -1, 74, 75, 3342 76, 363, 78, -1, -1, 1385, -1, 83, 84, -1, 3343 -1, 620, -1, -1, 147, -1, 625, -1, -1, -1, 3344 -1, -1, -1, -1, 157, 634, 635, 636, -1, 44, 3345 -1, -1, -1, 109, -1, 111, 169, 170, -1, -1, 3346 -1, 117, 118, 652, 406, -1, -1, -1, 1428, 1429, 3371 3347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3372 -1, -1, -1, 1345, -1, -1, -1, 1464, -1, 795, 3373 -1, -1, -1, -1, 1471, -1, -1, -1, -1, 805, 3374 1337, 807, -1, -1, -1, -1, 812, -1, -1, 815, 3375 -1, -1, -1, 819, -1, 10, 11, 12, 13, 14, 3376 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3377 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, 3378 -1, -1, 67, -1, 39, -1, -1, 1524, -1, -1, 3379 -1, -1, 77, 1415, 79, -1, 81, -1, -1, -1, 3380 -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, 3381 -1, -1, 67, -1, -1, 881, -1, 72, 1415, 74, 3382 75, 76, -1, 78, -1, -1, -1, -1, 83, 84, 3383 -1, -1, -1, -1, 119, -1, 121, 122, 123, 94, 3384 -1, -1, 1464, 1440, -1, 911, -1, -1, -1, 1471, 3385 -1, -1, -1, -1, 109, -1, 111, -1, -1, 26, 3386 27, 28, -1, 118, 119, -1, -1, 1464, -1, -1, 3387 -1, -1, 37, 38, 1471, 40, -1, 162, 701, -1, 3388 703, -1, -1, -1, -1, -1, -1, 710, 711, -1, 3389 -1, -1, 715, -1, -1, -1, -1, -1, -1, -1, 3390 966, 66, 1524, 50, 727, -1, -1, 72, -1, 732, 3391 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3392 67, 86, 87, -1, -1, -1, -1, 1524, -1, 94, 3393 -1, -1, -1, 100, -1, 102, -1, -1, 223, 762, 3394 225, 226, 227, -1, 109, -1, 111, -1, -1, -1, 3395 -1, -1, 117, 118, 119, 120, 121, 122, 123, -1, 3396 127, 1027, 1028, -1, 1030, 1031, -1, -1, 115, -1, 3397 -1, -1, 119, -1, -1, -1, 261, -1, -1, -1, 3398 -1, 266, -1, -1, 1050, -1, -1, -1, 284, -1, 3399 286, 287, -1, -1, -1, -1, 281, -1, 294, 295, 3400 -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, 3401 -1, 158, 308, 309, -1, 162, 183, -1, -1, 1085, 3402 1086, -1, -1, -1, 191, -1, 193, 194, -1, -1, 3403 -1, 198, -1, 200, 201, -1, -1, -1, -1, -1, 3404 863, 864, 865, 866, 329, 868, -1, -1, -1, -1, 3405 346, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3406 -1, 884, -1, -1, 211, -1, 351, -1, -1, -1, 3407 -1, 356, 357, -1, -1, 898, 223, -1, -1, 364, 3408 -1, -1, -1, -1, -1, -1, 382, -1, -1, -1, 3409 -1, -1, -1, 1159, 241, -1, -1, -1, -1, -1, 3410 -1, -1, -1, 270, -1, -1, -1, -1, -1, -1, 3411 -1, -1, -1, -1, -1, 938, -1, -1, -1, 266, 3412 -1, -1, 407, -1, -1, -1, 273, -1, -1, -1, 3413 -1, -1, -1, -1, -1, -1, 1202, -1, -1, -1, 3414 425, -1, -1, -1, -1, 430, -1, 432, -1, 296, 3415 -1, -1, -1, -1, -1, -1, -1, -1, 1224, -1, 3416 -1, 308, 985, -1, 449, -1, -1, 452, 453, 992, 3417 1236, -1, 1238, -1, 997, 460, -1, -1, -1, 1002, 3418 -1, 1004, -1, -1, -1, 1008, -1, 1010, 1011, 474, 3419 -1, 1014, -1, -1, -1, -1, 481, -1, -1, 346, 3420 1023, -1, -1, -1, 351, 1271, -1, -1, -1, -1, 3421 -1, -1, -1, 1279, 1280, 1281, -1, -1, 1041, 1042, 3422 -1, -1, -1, -1, 1290, 1291, -1, -1, -1, -1, 3423 -1, -1, -1, -1, -1, -1, -1, -1, 1304, -1, 3424 -1, -1, -1, -1, -1, 1068, -1, -1, 1071, -1, 3425 -1, -1, -1, -1, 550, 551, 552, 553, 554, 555, 3426 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 3427 566, 567, -1, -1, -1, -1, -1, -1, -1, 1345, 3428 427, 428, -1, -1, -1, -1, -1, 434, -1, -1, 3429 -1, 1114, -1, -1, -1, -1, -1, 1120, 1121, -1, 3430 -1, -1, -1, -1, -1, -1, -1, -1, 455, 1132, 3431 595, -1, -1, -1, -1, -1, -1, -1, -1, 1142, 3432 -1, -1, 1145, -1, 1147, -1, -1, 1150, -1, -1, 3433 -1, -1, -1, -1, -1, -1, 483, -1, 623, -1, 3434 1163, -1, -1, 628, -1, -1, -1, -1, 495, 1415, 3435 -1, -1, -1, 1176, -1, 1178, 1179, 1180, 1181, -1, 3436 507, -1, 509, -1, -1, 512, -1, 514, 515, -1, 3437 -1, 1194, -1, 1196, -1, -1, -1, 1200, -1, -1, 3438 527, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3439 -1, -1, -1, -1, -1, -1, -1, -1, 1464, -1, 3440 -1, 697, -1, -1, -1, 1471, 1229, 1230, 575, 576, 3441 -1, -1, -1, -1, -1, 700, -1, -1, -1, -1, 3442 -1, -1, -1, -1, -1, -1, -1, -1, -1, 714, 3443 -1, -1, 579, -1, -1, -1, -1, 604, -1, -1, 3444 607, 608, -1, 610, 591, 612, 613, -1, 595, 734, 3445 617, 618, -1, -1, -1, -1, -1, -1, 1524, 1282, 3446 1283, -1, -1, -1, 760, -1, -1, -1, -1, 1292, 3447 -1, -1, -1, -1, 621, -1, -1, -1, -1, 626, 3448 -1, -1, -1, -1, -1, -1, -1, -1, 635, 636, 3449 637, -1, -1, -1, -1, -1, 792, -1, -1, 7, 3450 -1, -1, 10, 11, 12, 13, 14, 654, -1, -1, 3451 -1, -1, -1, -1, 799, -1, -1, -1, -1, -1, 3452 1343, -1, 45, -1, -1, -1, 811, -1, -1, 37, 3453 38, 39, 40, 1356, -1, 1358, 1359, 1360, -1, 686, 3454 -1, -1, -1, -1, -1, 830, -1, 1370, -1, -1, 3455 -1, -1, -1, -1, -1, -1, 1379, -1, 66, 67, 3456 -1, -1, -1, -1, 72, 712, -1, 714, 76, -1, 3457 93, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3458 103, -1, -1, 1406, -1, -1, 94, -1, -1, -1, 3459 -1, 758, 759, -1, -1, -1, -1, -1, -1, -1, 3460 -1, 109, 749, 111, -1, -1, -1, -1, -1, -1, 3461 118, 119, 120, 121, 122, 123, -1, 913, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, -1, 1451, 1452, 3463 -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, 3464 -1, 1464, -1, -1, -1, -1, -1, -1, 1471, -1, 3465 173, -1, -1, -1, -1, -1, -1, -1, -1, 944, 3466 807, -1, 958, -1, 811, -1, -1, -1, 815, -1, 3467 -1, -1, -1, 196, -1, -1, -1, -1, -1, -1, 3468 -1, 1504, -1, -1, -1, 1508, -1, 210, -1, -1, 3469 -1, 976, -1, -1, -1, -1, 219, -1, -1, -1, 3470 996, -1, -1, -1, -1, -1, 229, -1, -1, -1, 3471 -1, -1, -1, 1009, 1537, -1, 1539, -1, -1, -1, 3472 -1, -1, -1, -1, -1, -1, -1, 1012, -1, -1, 3473 -1, 254, -1, -1, -1, -1, 259, -1, 1023, -1, 3474 -1, -1, -1, -1, 1567, 1568, -1, -1, -1, 272, 3475 -1, 918, 1575, 1576, 1050, 278, 923, 280, -1, -1, 3476 -1, -1, -1, -1, 911, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, 297, -1, -1, -1, -1, 926, 3348 -1, 1441, 424, -1, -1, -1, -1, 429, 1448, 431, 3349 37, 38, -1, 40, -1, 684, -1, 92, -1, -1, 3350 -1, -1, -1, -1, -1, -1, 448, 102, -1, 451, 3351 452, -1, -1, -1, -1, -1, -1, 459, -1, 66, 3352 1480, 710, -1, 712, 1484, 72, -1, 240, -1, 76, 3353 -1, 473, 79, 80, 81, 82, 83, 84, 480, 86, 3354 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3355 -1, 264, 1512, -1, 1514, -1, 745, -1, -1, -1, 3356 -1, -1, 109, 158, 111, -1, -1, 114, -1, -1, 3357 117, 118, 119, 120, 121, 122, -1, 172, -1, -1, 3358 -1, -1, 1542, 1543, -1, -1, -1, -1, -1, -1, 3359 1550, 1551, -1, -1, -1, -1, -1, -1, -1, -1, 3360 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 -1, -1, 801, -1, 209, -1, 805, -1, -1, -1, 3362 809, -1, -1, 218, -1, -1, -1, -1, -1, -1, 3363 -1, -1, -1, 228, -1, -1, -1, -1, -1, -1, 3364 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3365 -1, -1, 594, -1, -1, -1, -1, -1, 253, -1, 3366 -1, -1, -1, 258, -1, -1, -1, 380, -1, -1, 3367 -1, -1, -1, 66, -1, -1, 271, -1, -1, 72, 3368 622, -1, 277, 76, 279, 627, 79, 80, 81, 82, 3369 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3370 -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, 904, 109, -1, 111, -1, 3372 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3373 919, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3374 -1, -1, -1, 338, -1, -1, -1, -1, 343, -1, 3375 -1, -1, -1, -1, 943, -1, 698, -1, -1, -1, 3376 -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, 3377 712, -1, -1, -1, -1, -1, -1, 372, -1, -1, 3378 -1, 376, 377, -1, 379, -1, -1, -1, -1, -1, 3379 732, 386, 387, -1, 389, 390, -1, 392, -1, 394, 3380 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 999, -1, -1, 526, -1, -1, 411, -1, 531, -1, 3382 -1, 534, -1, -1, 419, -1, -1, -1, -1, -1, 3383 -1, 1020, 1021, 546, -1, -1, -1, -1, -1, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 444, 3385 -1, 793, -1, -1, -1, 568, -1, -1, -1, -1, 3386 -1, -1, -1, 805, -1, 578, -1, -1, -1, -1, 3387 -1, -1, 585, -1, -1, 470, -1, 590, -1, -1, 3388 -1, 476, 824, -1, -1, -1, 481, -1, -1, -1, 3389 -1, 1080, -1, -1, -1, -1, 3, 4, 5, 6, 3390 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3391 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3392 27, -1, 517, 30, 31, 32, 639, -1, -1, -1, 3393 -1, -1, 39, -1, 647, -1, -1, 532, -1, -1, 3478 3394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3479 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3480 -1, -1, -1, 950, -1, -1, -1, -1, -1, -1, 3481 1095, -1, -1, -1, -1, -1, 339, -1, -1, 966, 3482 -1, 344, -1, 66, 1109, -1, -1, -1, -1, 72, 3483 -1, 1127, -1, 76, -1, -1, 79, 80, 81, 82, 3484 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3485 373, 94, -1, -1, 377, 378, -1, 380, -1, -1, 3486 -1, -1, 1009, -1, 387, 388, 109, 390, 391, -1, 3487 393, -1, 395, -1, -1, 118, 119, 120, 121, 122, 3488 123, -1, -1, 1030, 1031, -1, -1, -1, -1, 412, 3489 -1, -1, -1, -1, 1190, 1191, -1, 420, -1, -1, 3395 -1, -1, -1, -1, -1, -1, -1, 1146, -1, -1, 3396 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3397 -1, -1, -1, 37, 38, 570, 40, -1, -1, -1, 3398 -1, -1, -1, -1, 579, -1, -1, -1, -1, -1, 3399 -1, 586, -1, -1, -1, 937, -1, 592, -1, 1188, 3400 -1, -1, 66, -1, 111, -1, 601, -1, 72, -1, 3401 117, 118, 76, -1, -1, 79, 80, 81, 82, 83, 3402 84, -1, 86, 87, -1, 967, -1, -1, -1, -1, 3403 -1, -1, 745, -1, 747, -1, 1225, -1, -1, 156, 3404 157, -1, -1, -1, 757, 109, 641, 111, -1, -1, 3405 763, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3406 1002, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3407 -1, 1013, -1, 190, -1, -1, -1, -1, -1, -1, 3408 197, -1, 677, -1, -1, 1274, 1275, -1, -1, -1, 3409 685, -1, 805, 806, 1283, -1, 809, -1, -1, -1, 3410 -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 3411 823, 285, 286, -1, -1, -1, -1, -1, -1, 293, 3412 294, 716, -1, -1, -1, -1, -1, -1, -1, -1, 3413 -1, 726, 727, 307, 308, -1, -1, -1, -1, -1, 3414 -1, -1, -1, 1085, -1, -1, -1, -1, -1, -1, 3415 863, -1, 269, -1, 867, -1, -1, 1099, -1, -1, 3416 -1, -1, -1, -1, 759, -1, -1, -1, -1, 764, 3417 -1, 345, 10, 11, 12, 13, 14, 15, 16, 17, 3418 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3419 -1, 904, 30, 31, 32, -1, -1, -1, -1, -1, 3420 -1, 39, 40, -1, -1, 1394, 323, 381, -1, -1, 3421 -1, -1, -1, -1, 331, 332, -1, 334, 335, -1, 3422 -1, -1, -1, -1, -1, -1, -1, -1, 345, 67, 3423 943, -1, 349, 828, -1, -1, 74, 75, -1, -1, 3424 835, -1, -1, -1, -1, -1, 1188, -1, -1, -1, 3425 -1, 368, -1, 848, 371, 850, -1, -1, 971, -1, 3426 -1, 1450, -1, 1452, 977, -1, -1, -1, 981, 864, 3427 -1, -1, -1, 111, -1, 870, -1, 115, -1, 117, 3428 118, 398, -1, -1, -1, 402, -1, 882, -1, 1002, 3429 885, -1, -1, -1, -1, -1, -1, 1486, -1, 1488, 3430 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, -1, -1, -1, 433, -1, -1, -1, 3432 -1, -1, 1035, -1, 1037, -1, 1515, -1, -1, -1, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1052, 3434 1053, 1283, 10, 11, 12, 13, 14, 15, 16, 17, 3435 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3436 1073, -1, 479, -1, -1, 482, -1, 962, -1, -1, 3437 -1, 39, -1, -1, -1, 549, 550, 551, 552, 553, 3438 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3439 564, 565, 566, -1, -1, -1, -1, 37, 38, 67, 3440 40, -1, 997, -1, 521, -1, -1, -1, 525, 526, 3441 -1, -1, -1, -1, -1, 1128, -1, -1, -1, -1, 3442 -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, 3443 -1, -1, 72, 1146, -1, -1, 76, -1, -1, 79, 3444 80, 81, 82, 83, 84, -1, 86, 87, 1161, 1162, 3445 -1, -1, -1, 570, 571, -1, -1, -1, -1, -1, 3446 1055, -1, -1, -1, -1, -1, 1061, -1, -1, 109, 3447 -1, 111, 589, 590, 114, -1, -1, 117, 118, 119, 3448 120, 121, 122, 600, -1, 602, 603, -1, -1, -1, 3449 -1, -1, 609, -1, -1, -1, -1, -1, -1, -1, 3450 1095, -1, 619, 620, -1, 1100, -1, -1, 625, -1, 3451 -1, -1, -1, 1108, -1, -1, -1, 634, 635, 636, 3452 -1, 695, -1, -1, -1, -1, -1, -1, -1, -1, 3453 -1, -1, -1, -1, -1, 652, -1, -1, -1, -1, 3454 657, 658, -1, -1, 661, 662, 1141, -1, -1, -1, 3455 -1, 668, -1, -1, -1, -1, -1, -1, 1153, -1, 3456 -1, 1156, -1, 1158, -1, -1, -1, -1, -1, -1, 3457 687, -1, -1, -1, -1, -1, -1, 1172, 1173, -1, 3458 -1, -1, 756, -1, -1, -1, -1, -1, 1530, 1302, 3459 -1, -1, 1305, 710, 711, -1, -1, -1, -1, 1194, 3490 3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3491 -1, -1, -1, -1, -1, -1, 1201, -1, -1, -1, 3492 1087, -1, 445, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, 786, -1, -1, -1, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, 744, 745, -1, 3463 -1, -1, 749, 750, -1, -1, -1, -1, -1, -1, 3464 -1, -1, -1, -1, -1, -1, 1241, -1, -1, -1, 3465 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3466 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3467 -1, 30, 31, 32, -1, -1, 793, -1, -1, -1, 3468 39, -1, -1, -1, 801, -1, -1, -1, -1, -1, 3469 -1, 808, 809, -1, -1, 812, -1, 814, -1, -1, 3470 -1, -1, -1, -1, -1, -1, -1, 824, 67, -1, 3471 -1, -1, -1, 72, -1, 74, 75, 76, -1, 78, 3472 -1, 1316, -1, 1318, 83, 84, -1, -1, -1, -1, 3473 -1, -1, 906, -1, -1, 1330, -1, 1332, -1, -1, 3493 3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, 1090, -1, -1, -1, -1, 471, -1, 3495 -1, -1, -1, -1, 477, -1, -1, 0, -1, 482, 3496 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3497 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3498 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3499 33, -1, -1, 36, -1, 518, 39, 40, -1, -1, 3475 -1, -1, 111, -1, 1349, -1, -1, -1, 117, 118, 3500 3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3501 533, -1, 1159, -1, 1299, -1, -1, -1, -1, -1, 3502 -1, 64, -1, -1, 67, -1, 69, -1, 71, 72, 3503 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3504 83, 84, -1, -1, -1, -1, -1, -1, 571, -1, 3505 -1, 94, 1219, -1, 1201, -1, -1, 580, -1, 157, 3506 158, -1, -1, -1, 587, -1, 109, -1, 111, -1, 3507 593, -1, -1, -1, -1, 118, 119, -1, -1, 602, 3477 1365, 1366, -1, -1, -1, -1, -1, 951, -1, 896, 3478 -1, 1376, -1, -1, 1379, -1, 903, 904, 905, -1, 3479 907, -1, -1, -1, 911, -1, -1, -1, -1, -1, 3480 -1, -1, 1515, -1, -1, 1400, -1, -1, -1, -1, 3481 -1, -1, 986, -1, 1409, 932, 933, 1412, -1, 1414, 3482 1415, 1416, -1, -1, -1, 999, 10, 11, 12, 13, 3483 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3484 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, 3485 967, -1, -1, -1, -1, 39, -1, -1, -1, 1454, 3486 -1, 1456, -1, 1458, -1, -1, 1040, -1, -1, -1, 3487 -1, 988, 989, -1, -1, -1, -1, -1, 1473, -1, 3488 -1, -1, 999, 67, -1, -1, -1, -1, 1005, 1006, 3489 -1, 1008, 1009, 1010, 78, -1, -1, -1, -1, -1, 3490 -1, -1, -1, 1020, 1021, -1, -1, -1, -1, -1, 3491 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 3492 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3493 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3494 26, 27, -1, 1117, 30, 31, 32, 33, -1, -1, 3495 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3496 -1, -1, -1, -1, -1, -1, 1083, -1, 1085, -1, 3497 -1, -1, -1, 1090, -1, -1, -1, -1, -1, -1, 3498 66, 67, 1099, 69, -1, 71, 72, -1, 74, 75, 3499 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3500 86, 87, -1, 1177, 1178, 1122, 1123, 1124, -1, -1, 3508 3501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3509 -1, 1238, -1, 191, -1, -1, -1, -1, -1, -1, 3510 198, -1, -1, -1, -1, 1401, -1, -1, -1, -1, 3511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3512 643, -1, -1, 1419, -1, -1, -1, -1, -1, -1, 3513 -1, 37, 38, -1, 40, -1, -1, -1, -1, -1, 3514 -1, -1, -1, 1290, 1291, -1, -1, -1, -1, -1, 3515 -1, -1, 1299, -1, -1, -1, 679, -1, -1, -1, 3516 66, -1, -1, -1, 687, -1, 72, -1, -1, -1, 3517 76, -1, 270, 79, 80, 81, 82, 83, 84, -1, 3518 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3519 -1, -1, -1, -1, -1, 718, 1492, 1493, -1, -1, 3520 -1, -1, -1, 109, -1, 728, 729, -1, -1, -1, 3521 -1, -1, 118, 119, 120, 121, 122, 123, -1, 742, 3522 -1, -1, -1, -1, -1, -1, 324, -1, -1, -1, 3523 -1, -1, -1, -1, 332, 333, -1, 335, 336, -1, 3524 763, -1, 765, -1, -1, -1, 769, -1, 346, -1, 3525 -1, -1, 350, -1, -1, -1, -1, -1, -1, -1, 3526 -1, -1, -1, -1, -1, -1, -1, -1, 1415, -1, 3527 1555, 369, -1, -1, 372, 10, 11, 12, 13, 14, 3528 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3529 25, 26, 27, 28, -1, 30, 31, 32, -1, -1, 3530 -1, 399, -1, -1, 39, 403, -1, -1, -1, -1, 3531 -1, 834, -1, -1, -1, -1, -1, -1, 841, -1, 3532 -1, -1, -1, -1, -1, -1, 1473, -1, 1475, -1, 3533 -1, 854, 67, 856, -1, -1, 434, 72, -1, 74, 3534 75, 76, -1, 78, -1, -1, -1, 870, 83, 84, 3535 -1, -1, -1, -1, 877, -1, -1, -1, -1, 94, 3536 -1, -1, -1, 1510, 148, 1512, 889, -1, -1, 892, 3537 -1, -1, -1, -1, 158, -1, 111, -1, -1, -1, 3538 -1, -1, 480, 118, 119, 483, 170, 171, -1, -1, 3539 -1, -1, -1, 1540, 3, 4, 5, 6, 7, 8, 3540 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3541 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3542 -1, 30, 31, 32, 522, -1, -1, -1, 526, 527, 3543 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, 971, -1, 3545 -1, -1, -1, -1, -1, -1, -1, 241, 67, -1, 3546 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 3547 -1, -1, -1, 571, 572, -1, -1, -1, -1, -1, 3548 -1, 265, -1, -1, 1007, 94, -1, -1, -1, -1, 3549 -1, -1, 590, 591, -1, -1, -1, -1, -1, -1, 3550 -1, -1, 111, 601, -1, 603, 604, -1, -1, 118, 3551 119, -1, 610, -1, -1, -1, -1, -1, -1, -1, 3552 -1, -1, 620, 621, -1, -1, -1, -1, 626, -1, 3553 -1, -1, -1, -1, -1, -1, -1, 635, 636, 637, 3554 -1, -1, 1065, -1, -1, -1, -1, -1, 1071, -1, 3555 -1, -1, -1, -1, -1, -1, 654, -1, -1, -1, 3556 -1, 659, 660, -1, -1, 663, 664, -1, -1, -1, 3557 -1, -1, 670, -1, -1, -1, -1, -1, -1, -1, 3558 -1, -1, 1105, -1, -1, -1, -1, 1110, -1, -1, 3559 -1, 689, -1, -1, -1, 1118, -1, 381, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 -1, -1, -1, -1, 712, 713, -1, -1, -1, -1, 3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3563 -1, 1154, -1, -1, -1, -1, -1, -1, -1, -1, 3564 -1, -1, -1, 1166, -1, -1, 1169, -1, 1171, -1, 3565 748, 749, -1, -1, -1, 753, 754, -1, -1, -1, 3566 -1, -1, 1185, 1186, -1, -1, -1, -1, -1, -1, 3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, 1207, -1, -1, -1, -1, -1, 3569 -1, 475, 37, 38, -1, 40, -1, -1, -1, -1, 3570 -1, 799, -1, -1, -1, -1, -1, -1, -1, 807, 3571 -1, -1, -1, -1, -1, -1, 814, 815, -1, -1, 3572 818, 66, 820, -1, -1, -1, -1, 72, -1, -1, 3573 514, 76, 830, 1256, 79, 80, 81, 82, 83, 84, 3574 -1, 86, 87, 527, -1, -1, -1, -1, 532, 94, 3575 -1, 535, -1, -1, -1, -1, -1, -1, -1, -1, 3576 -1, -1, 546, 547, 109, -1, 111, -1, -1, -1, 3577 -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, 3578 -1, -1, -1, -1, -1, 569, -1, -1, -1, -1, 3579 -1, -1, -1, -1, -1, 579, -1, -1, -1, -1, 3580 -1, -1, 586, -1, -1, 903, -1, 591, -1, 1332, 3581 -1, 1334, 910, 911, 912, -1, 914, -1, -1, -1, 3582 918, -1, -1, -1, -1, 1348, -1, 1350, -1, -1, 3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3584 -1, 939, 940, -1, -1, 1368, -1, -1, -1, -1, 3585 -1, -1, -1, -1, -1, -1, 640, -1, -1, -1, 3586 -1, 1384, 1385, -1, -1, 649, -1, -1, 966, -1, 3587 -1, -1, 1395, -1, -1, 1398, -1, -1, 976, 10, 3588 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3589 21, 22, 23, 24, 25, 26, 27, 28, 1421, -1, 3590 998, 999, -1, -1, -1, -1, -1, 1430, 39, -1, 3591 1433, 1009, 1435, 1436, 1437, -1, -1, 1015, 1016, -1, 3592 1018, 1019, 1020, -1, -1, -1, -1, -1, -1, -1, 3593 -1, -1, 1030, 1031, -1, -1, 67, -1, -1, -1, 3594 -1, -1, -1, -1, -1, -1, -1, 78, -1, -1, 3595 -1, -1, -1, -1, 1477, -1, 1479, -1, 1481, -1, 3596 -1, -1, -1, -1, -1, 749, -1, 751, -1, -1, 3597 -1, -1, -1, -1, 1497, -1, -1, 761, -1, -1, 3598 -1, -1, -1, -1, 768, -1, -1, -1, -1, -1, 3599 -1, -1, -1, -1, -1, 1093, -1, 1095, -1, -1, 3600 -1, -1, 1100, -1, -1, -1, -1, -1, -1, -1, 3601 -1, 1109, -1, -1, -1, -1, -1, -1, -1, 7, 3602 -1, -1, 10, 11, 12, 13, 14, 811, 812, -1, 3603 -1, 815, -1, -1, -1, -1, 1134, 1135, 1136, -1, 3604 -1, -1, -1, -1, -1, 829, -1, -1, -1, 37, 3605 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3606 -1, 1159, -1, -1, -1, -1, -1, -1, -1, -1, 3607 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3608 -1, -1, -1, -1, 72, 869, -1, -1, 76, 873, 3609 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3610 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612 -1, 109, 1220, 111, -1, -1, -1, 911, -1, -1, 3613 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3614 1238, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3615 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3616 23, 24, 25, 26, 27, -1, 950, 30, 31, 32, 3617 -1, -1, -1, -1, 37, 38, 39, 40, -1, -1, 3618 -1, -1, 966, 967, -1, -1, -1, -1, -1, -1, 3619 -1, -1, 1290, 1291, -1, -1, 980, -1, -1, -1, 3620 -1, -1, 986, 66, 67, 989, 69, 991, 71, 72, 3621 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3622 83, 84, -1, 86, 87, -1, -1, -1, 1012, -1, 3623 -1, 94, -1, -1, -1, -1, -1, -1, -1, 1023, 3624 -1, 37, 38, -1, 40, -1, 109, -1, 111, -1, 3625 -1, -1, -1, 116, -1, 118, 119, 120, 121, 122, 3626 123, 1045, -1, 1047, -1, -1, -1, -1, -1, -1, 3627 66, -1, -1, -1, -1, -1, 72, -1, 1062, 1063, 3628 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3629 86, 87, -1, -1, -1, -1, -1, -1, 94, 1083, 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, -1, 109, -1, 111, -1, 1415, 114, -1, 3632 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 3633 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3634 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3635 22, 23, 24, 25, 26, 27, 1140, -1, 30, 31, 3636 32, 33, -1, -1, 36, -1, -1, 39, 40, -1, 3637 -1, -1, -1, -1, -1, 1159, -1, -1, -1, -1, 3638 -1, 37, 38, -1, 40, -1, -1, -1, -1, -1, 3639 1174, 1175, 64, -1, -1, 67, -1, 69, -1, 71, 3640 72, -1, 74, 75, 76, -1, -1, 1505, -1, -1, 3641 66, 83, 84, -1, -1, -1, 72, -1, -1, -1, 3642 76, -1, 94, 79, 80, 81, 82, 83, 84, -1, 3643 86, 87, 1530, 1531, -1, -1, -1, 109, 94, 111, 3644 -1, -1, -1, 115, -1, -1, 118, 119, -1, -1, 3645 -1, -1, -1, 109, -1, 111, -1, 1555, -1, -1, 3646 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 3647 1254, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3648 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3649 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3650 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3651 41, -1, 43, -1, -1, 46, 47, 48, 49, 50, 3652 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 3653 61, 62, -1, 64, 1318, 66, 67, 1321, 69, -1, 3654 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3655 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3656 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3657 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3658 111, -1, -1, 114, -1, -1, -1, 118, 119, 120, 3659 121, 122, 123, -1, -1, -1, -1, 128, -1, -1, 3660 -1, 132, -1, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3662 -1, 1405, -1, -1, -1, -1, -1, -1, 3, 4, 3502 -1, -1, -1, 109, -1, 111, -1, -1, -1, 1146, 3503 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3504 -1, -1, -1, -1, -1, -1, 132, -1, 3, 4, 3663 3505 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3664 3506 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3665 3507 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3666 -1, 36, 37, 38, 39, 40, 10, 11, 12, 13, 3508 -1, 36, 37, 38, 39, 40, 41, -1, 43, -1, 3509 1207, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3510 -1, -1, 57, -1, -1, -1, 61, 62, 1225, 64, 3511 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3512 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3513 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3515 -1, -1, -1, -1, 109, -1, 111, 1274, 1275, 114, 3516 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3517 -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, 3518 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3519 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3520 21, 22, 23, 24, 25, 26, 27, -1, 1382, 30, 3521 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3522 -1, -1, -1, -1, 1398, -1, -1, -1, -1, -1, 3523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3525 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3526 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3527 -1, -1, -1, -1, -1, -1, -1, 1394, -1, -1, 3528 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3529 111, -1, -1, -1, 1468, 1469, 117, 118, 119, 120, 3530 121, 122, -1, 4, 5, 6, 7, 8, 9, 10, 3531 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3532 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3533 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3534 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3535 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3536 27, 28, -1, -1, 1481, 66, 67, -1, 69, -1, 3537 71, 72, 39, 74, 75, 76, -1, -1, 79, 80, 3538 81, 82, 83, 84, -1, 86, 87, -1, 1505, 1506, 3539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540 67, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3541 111, 78, -1, 1530, -1, 116, 117, 118, 119, 120, 3542 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3543 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3544 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3545 32, -1, -1, -1, -1, 37, 38, 39, 40, 10, 3546 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3547 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3548 31, 32, -1, -1, 66, 67, -1, 69, 39, 71, 3549 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3550 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3551 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3552 -1, 72, -1, 74, 75, -1, -1, 109, -1, 111, 3553 -1, -1, 83, 84, 116, 117, 118, 119, 120, 121, 3554 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3556 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3557 -1, -1, -1, -1, 37, 38, 39, 40, 10, 11, 3558 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3559 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3560 32, -1, -1, 66, 67, -1, 69, 39, 71, 72, 3561 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3562 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3563 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3564 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3565 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3566 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3667 3567 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3668 3568 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3669 -1, 66, 67, -1, 69, 39, 71, 72, -1, 74, 3670 75, 76, -1, 1487, 79, 80, 81, 82, 83, 84, 3671 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3672 -1, -1, -1, 67, -1, -1, -1, -1, 72, -1, 3673 74, 75, -1, -1, 109, -1, 111, -1, -1, 83, 3674 84, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3675 -1, -1, -1, -1, -1, -1, 1540, 132, 3, 4, 3676 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3677 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3678 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3679 -1, 36, 37, 38, 39, 40, -1, -1, -1, 10, 3680 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3681 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, 3682 -1, 66, 67, -1, 69, -1, 71, 72, 39, 74, 3683 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3684 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3685 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3686 -1, -1, -1, -1, 109, -1, 111, 78, -1, -1, 3687 -1, -1, -1, 118, 119, 120, 121, 122, 123, 4, 3688 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3689 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3690 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3691 -1, -1, 37, 38, 39, 40, 10, 11, 12, 13, 3692 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3693 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3694 -1, 66, 67, -1, 69, 39, 71, 72, -1, 74, 3695 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3696 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3697 -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, 3698 74, 75, -1, -1, 109, -1, 111, -1, -1, -1, 3699 -1, 116, -1, 118, 119, 120, 121, 122, 123, 4, 3700 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3701 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3702 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3703 -1, -1, 37, 38, 39, 40, 10, 11, 12, 13, 3704 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3705 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3706 -1, 66, 67, -1, 69, 39, 71, 72, -1, 74, 3707 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3708 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3709 -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, 3710 74, 75, -1, -1, 109, -1, 111, -1, -1, -1, 3711 -1, 116, -1, 118, 119, 120, 121, 122, 123, 4, 3569 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3570 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3571 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3572 -1, -1, 66, 67, -1, 69, 39, 71, 72, -1, 3573 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3574 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3575 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3576 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3577 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3712 3578 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3713 3579 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 3718 3584 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3719 3585 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3720 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94,3586 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3721 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3722 3588 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3723 -1, -1, -1, 118, 119, 120, 121, 122, 123, 4,3724 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,3725 1 5, 16, 17, 18, 19, 20, 21, 22, 23, 24,3726 2 5, 26, 27, -1, -1, 30, 31, 32, -1, -1,3727 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1,3589 -1, -1, 117, 118, 119, 120, 121, 122, 4, 5, 3590 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3591 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3592 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3593 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3728 3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3730 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74,3731 7 5, 76, -1, -1, 79, 80, 81, 82, 83, 84,3732 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94,3596 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3597 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3598 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3733 3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3734 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1,3735 -1, -1, -1, 118, 119, 120, 121, 122, 123, 4,3736 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,3737 1 5, 16, 17, 18, 19, 20, 21, 22, 23, 24,3738 2 5, 26, 27, -1, -1, 30, 31, 32, -1, -1,3739 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1,3600 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3601 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3602 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3603 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3604 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3605 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 3740 3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3608 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3609 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3610 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3741 3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3743 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3744 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3746 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3747 -1, -1, -1, 118, 119, 120, 121, 122, 123, 4, 3748 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3749 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3750 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3751 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3754 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3755 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3756 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3759 -1, -1, -1, 118, 119, 120, 121, 122, 123, 3, 3612 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3613 117, 118, 119, 120, 121, 122, 0, -1, -1, 3, 3760 3614 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3761 3615 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 3767 3621 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3768 3622 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3769 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3770 3624 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3771 -1, -1, -1, -1, 118, 119, 3, 4, 5, 6, 3625 -1, -1, -1, 117, 118, 3, 4, 5, 6, 7, 3626 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3627 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3628 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3629 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3632 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3633 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3636 -1, 109, -1, 111, -1, -1, -1, 115, -1, 117, 3637 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3638 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3639 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3640 32, 33, -1, -1, 36, -1, -1, 39, 40, -1, 3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 -1, -1, 64, -1, -1, 67, -1, 69, -1, 71, 3644 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3645 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3648 -1, -1, -1, -1, -1, 117, 118, 3, 4, 5, 3649 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3650 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3651 26, 27, -1, -1, 30, 31, 32, 33, -1, -1, 3652 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3656 -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3658 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3659 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3660 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3662 -1, -1, -1, -1, 67, -1, 69, -1, 71, 72, 3663 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3664 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3667 -1, -1, -1, -1, 117, 118, 4, 5, 6, 7, 3668 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3669 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3670 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3671 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3672 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3673 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3674 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3675 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3676 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3677 25, 26, 27, 67, -1, 30, 31, 32, -1, -1, 3678 74, 75, 110, 111, 39, -1, -1, -1, -1, 117, 3679 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, 67, -1, 69, 109, 71, 111, -1, 74, 3682 75, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3684 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3686 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3687 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3688 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3689 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3690 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3691 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3692 27, -1, -1, 30, 31, 32, -1, 67, -1, 69, 3693 -1, 71, 39, 40, 74, 75, -1, -1, -1, -1, 3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3695 -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, 3696 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3697 -1, 111, -1, -1, -1, -1, -1, 117, 118, 4, 3698 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3699 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3700 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3701 117, 118, -1, -1, 39, -1, -1, -1, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3704 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3705 75, -1, 4, 5, 6, 7, 8, 9, 10, 11, 3706 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3707 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3708 32, -1, -1, -1, -1, -1, 111, 39, -1, -1, 3709 -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, 3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3712 -1, -1, 74, 75, -1, 4, 5, 6, 7, 8, 3713 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3714 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3715 -1, 30, 31, 32, -1, -1, -1, -1, -1, 111, 3716 39, -1, -1, -1, -1, 117, 118, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3718 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3719 69, -1, 71, -1, -1, 74, 75, -1, 4, 5, 3720 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3721 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3722 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3723 -1, -1, 111, 39, -1, -1, -1, -1, 117, 118, 3724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3726 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3727 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3728 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3729 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3730 40, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3731 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3732 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3733 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3734 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3737 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3738 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3739 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3740 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3741 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3742 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3743 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3744 67, -1, -1, 39, -1, 72, -1, 74, 75, 76, 3745 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3746 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3748 76, -1, 109, 110, 111, -1, -1, 83, 84, -1, 3749 117, 118, 119, 120, 121, 122, 10, 11, 12, 13, 3750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3751 24, 25, 26, 27, -1, 111, 30, 31, 32, -1, 3752 -1, 117, 118, 37, 38, 39, 40, 10, 11, 12, 3753 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3754 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3755 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3756 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3757 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3759 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3760 83, 84, -1, 117, 118, 119, 120, 121, 122, 10, 3761 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3762 21, 22, 23, 24, 25, 26, 27, -1, 111, 30, 3763 31, 32, -1, -1, 117, 118, 37, 38, 39, 40, 3764 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3765 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3766 30, 31, 32, -1, -1, 66, 67, -1, -1, 39, 3767 40, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3768 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3769 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3770 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3771 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3772 121, 122, 10, 11, 12, 13, 14, 15, 16, 17, 3773 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3774 -1, 111, 30, 31, 32, 115, -1, 117, 118, 37, 3775 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3776 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3777 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3778 -1, -1, 39, -1, 72, -1, 74, 75, 76, -1, 3779 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3781 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3782 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3783 118, 119, 120, 121, 122, 10, 11, 12, 13, 14, 3784 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3785 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3786 117, 118, 37, 38, 39, 40, -1, -1, -1, -1, 3787 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3788 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3789 27, 66, 67, 30, 31, 32, -1, 72, -1, 74, 3790 75, 76, 39, -1, 79, 80, 81, 82, 83, 84, 3791 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3793 67, -1, -1, -1, 109, -1, 111, 74, 75, -1, 3794 -1, -1, 117, 118, 119, 120, 121, 122, 3, 4, 3795 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3796 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3797 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3798 117, 118, -1, -1, 39, -1, -1, -1, 10, 11, 3799 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3800 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3801 32, -1, 67, -1, 69, -1, 71, 39, -1, 74, 3802 75, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3803 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, 67, 30, 31, 32, -1, 3805 72, -1, 74, 75, 76, 39, -1, -1, -1, 114, 3806 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3807 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3808 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3809 74, 75, 76, 39, -1, 117, 118, -1, -1, 83, 3810 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3811 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3812 -1, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3813 76, 39, -1, 117, 118, -1, -1, 83, 84, -1, 3814 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3815 20, 21, 22, 23, 24, 25, 26, 27, 28, 67, 3816 30, 31, 32, 109, 72, 111, 74, 75, 76, 39, 3817 -1, 117, 118, -1, -1, 83, 84, -1, 10, 11, 3818 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3819 22, 23, 24, 25, 26, 27, 28, 67, 30, 31, 3820 32, 109, -1, 111, 74, 75, -1, 39, 78, 117, 3821 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3822 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3823 -1, 30, 31, 32, -1, 67, -1, -1, -1, 109, 3824 39, 111, 74, 75, -1, -1, 78, 117, 118, 10, 3825 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3826 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3827 31, 32, -1, -1, -1, 74, 75, -1, 39, 111, 3828 -1, -1, -1, -1, -1, 117, 118, 10, 11, 12, 3829 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3830 23, 24, 25, 26, 27, -1, 67, 30, 31, 32, 3831 -1, -1, 111, 74, 75, -1, 39, -1, 117, 118, 3832 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3833 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3834 30, 31, 32, -1, 67, -1, -1, -1, -1, 39, 3835 111, 74, 75, -1, -1, -1, 117, 118, 10, 11, 3836 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3837 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3838 32, -1, -1, -1, 74, 75, -1, 39, 111, -1, 3839 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3842 -1, 111, 74, 75, -1, -1, -1, 117, 118, 4, 3843 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3844 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3845 25, 26, 27, -1, -1, 30, 31, 32, -1, 111, 3846 -1, -1, -1, -1, 39, 117, 118, -1, -1, -1, 3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3849 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3850 75, 37, 38, -1, 40, 41, -1, 43, -1, -1, 3851 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3852 56, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3853 66, -1, -1, -1, -1, 110, 72, -1, -1, -1, 3854 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3855 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3857 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3858 -1, 117, 118, 119, 120, 121, 122, -1, -1, 37, 3859 38, 127, 40, 41, -1, 43, 132, -1, 46, 47, 3860 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3861 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3862 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3863 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3866 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3867 118, 119, 120, 121, 122, -1, -1, -1, -1, 127, 3868 -1, -1, -1, -1, 132, 4, 5, 6, 7, 8, 3869 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3870 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3871 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3872 39, -1, 37, 38, -1, 40, 41, -1, 43, 44, 3873 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3874 -1, 56, 57, -1, -1, -1, 61, 62, 67, 64, 3875 69, 66, 71, -1, -1, 74, 75, 72, -1, -1, 3876 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3877 -1, 86, 87, -1, -1, -1, -1, 96, -1, -1, 3878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3879 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3880 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3881 37, 38, 127, 40, 41, -1, 43, 44, 45, 46, 3882 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3883 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3884 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3885 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3886 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3888 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3889 117, 118, 119, 120, 121, 122, -1, -1, 37, 38, 3890 127, 40, 41, -1, 43, -1, -1, 46, 47, 48, 3891 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3892 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3893 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3894 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3895 -1, -1, -1, -1, -1, 37, 38, -1, 40, -1, 3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3897 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3898 119, 120, 121, 122, 66, -1, -1, -1, 127, -1, 3899 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3900 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3901 -1, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3902 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3903 -1, 113, 114, -1, -1, 117, 118, 119, 120, 121, 3904 122, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3905 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3906 -1, 86, 87, -1, -1, -1, -1, -1, -1, 37, 3907 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 3908 -1, -1, -1, -1, 109, -1, 111, -1, 37, 38, 3909 -1, 40, 117, 118, 119, 120, 121, 122, 66, -1, 3910 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3911 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 3912 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3913 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3914 -1, 109, -1, 111, -1, 37, 38, -1, 40, 117, 3915 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3916 109, -1, -1, -1, 37, 38, -1, 40, 117, 118, 3917 119, 120, 121, 122, 66, -1, -1, -1, -1, -1, 3918 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3919 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3920 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3921 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3922 -1, 37, 38, -1, 40, 117, 118, 119, 120, 121, 3923 122, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3924 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3925 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3926 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3927 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3929 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 3930 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3772 3931 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3773 3932 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3774 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3775 -1, -1, 39, -1, 10, 11, 12, 13, 14, 15, 3776 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3777 26, 27, -1, -1, 30, 31, 32, 33, 34, 35, 3778 67, -1, 69, 39, 71, 72, -1, 74, 75, 76, 3779 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3780 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3781 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3782 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3783 -1, 118, 119, 3, 4, 5, 6, 7, 8, 9, 3784 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3785 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3786 30, 31, 32, 33, -1, -1, 36, -1, -1, 39, 3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3789 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3790 -1, 71, -1, -1, 74, 75, -1, -1, 78, -1, 3791 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3792 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3794 -1, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3795 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3796 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3797 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3798 33, -1, -1, 36, -1, -1, 39, -1, -1, -1, 3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3801 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3802 -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, 3803 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3804 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3805 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 3806 -1, -1, -1, -1, -1, 118, 119, 4, 5, 6, 3807 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3808 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3809 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3933 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3810 3934 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3811 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3812 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3813 3937 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3814 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3815 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3816 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3817 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3818 -1, 118, 119, 4, 5, 6, 7, 8, 9, 10, 3819 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3820 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3821 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 3822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3824 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3825 71, -1, -1, 74, 75, -1, -1, -1, -1, -1, 3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3827 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3828 -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 3829 111, -1, -1, -1, -1, -1, -1, 118, 119, 4, 3938 -1, -1, -1, -1, -1, -1, 83, 84, 3, 4, 3830 3939 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3831 3940 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 3835 3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3836 3945 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3837 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3838 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, 3839 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3841 -1, -1, -1, 118, 119, 4, 5, 6, 7, 8, 3842 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3843 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3844 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3845 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3846 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3847 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3848 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 3849 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3850 -1, -1, -1, -1, -1, 94, -1, 96, -1, -1, 3851 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3852 -1, -1, 111, -1, -1, -1, -1, -1, -1, 118, 3853 119, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3854 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3855 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3856 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 3946 75, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3947 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3948 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3949 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3857 3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3858 3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3859 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3860 -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, 3861 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3862 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 3864 -1, -1, -1, -1, -1, 118, 119, 4, 5, 6, 3865 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3866 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3867 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3868 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3870 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3871 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3873 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3874 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3875 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3876 -1, 118, 119, 4, 5, 6, 7, 8, 9, 10, 3877 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3878 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3879 31, 32, -1, -1, -1, -1, -1, -1, 39, -1, 3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3882 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3883 71, -1, -1, 74, 75, -1, -1, -1, -1, -1, 3884 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3885 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 111, -1, -1, -1, -1, -1, -1, 118, 119, 4, 3888 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3889 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3890 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3891 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 3892 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3894 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3895 75, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3896 19, 20, 21, 22, 23, 24, 25, 26, 27, 94, 3897 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3898 39, 40, -1, -1, -1, -1, 111, -1, -1, -1, 3899 -1, -1, -1, 118, 119, -1, -1, -1, -1, -1, 3900 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 3901 -1, -1, -1, 72, -1, 74, 75, 76, -1, -1, 3902 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3903 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3904 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3905 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 3906 119, 120, 121, 122, 123, 10, 11, 12, 13, 14, 3907 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3908 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3909 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3912 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3913 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3914 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3916 -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, 3917 -1, -1, -1, 118, 119, 120, 121, 122, 123, 10, 3918 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3919 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3920 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3921 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3923 -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, 3924 -1, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3925 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3926 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3927 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3928 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, 3929 121, 122, 123, 10, 11, 12, 13, 14, 15, 16, 3930 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3931 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3932 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 3933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3934 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3935 67, -1, -1, -1, -1, 72, -1, 74, 75, 76, 3936 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3937 87, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3938 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3939 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3940 -1, 118, 119, 120, 121, 122, 123, 10, 11, 12, 3941 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3942 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3943 -1, -1, -1, -1, 37, 38, 39, 40, -1, -1, 3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3945 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3946 -1, -1, -1, 66, 67, -1, -1, -1, -1, 72, 3947 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3948 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3949 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3950 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3951 -1, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3952 123, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3953 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3954 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3955 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 3958 -1, -1, -1, 72, -1, 74, 75, 76, -1, -1, 3959 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3960 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3962 109, -1, 111, -1, -1, -1, -1, -1, -1, 118, 3963 119, 120, 121, 122, 123, 3, 4, 5, 6, 7, 3964 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3965 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3966 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3967 -1, 39, -1, -1, -1, 10, 11, 12, 13, 14, 3968 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3969 25, 26, 27, -1, -1, 30, 31, 32, -1, 67, 3970 -1, 69, -1, 71, 39, -1, 74, 75, -1, -1, 3971 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3972 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3973 27, -1, 67, 30, 31, 32, -1, 72, -1, 74, 3974 75, 76, 39, -1, -1, -1, 114, -1, 83, 84, 3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, 3976 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3977 67, -1, -1, -1, 109, 72, 111, 74, 75, 76, 3978 -1, -1, -1, 118, 119, -1, 83, 84, -1, -1, 3979 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3980 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3981 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3982 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 3983 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3984 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3985 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 3986 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3987 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3988 67, -1, 39, -1, -1, 72, -1, 74, 75, 76, 3989 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3990 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3991 67, -1, -1, -1, -1, 72, -1, 74, 75, 76, 3992 -1, -1, 109, -1, 111, -1, 83, 84, -1, -1, 3993 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 3994 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3995 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3996 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 3997 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3998 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3999 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4000 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4001 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4002 67, -1, 39, -1, -1, 72, -1, 74, 75, 76, 4003 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 4004 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4005 67, -1, -1, -1, -1, 72, -1, 74, 75, -1, 4006 -1, -1, -1, -1, 111, -1, 83, 84, -1, -1, 4007 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4009 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4010 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4011 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4012 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, 4013 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4014 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4015 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4016 67, -1, 39, 40, -1, -1, -1, 74, 75, -1, 4017 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, 4018 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4019 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4020 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 4021 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4022 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4023 -1, -1, -1, -1, 111, -1, -1, -1, 115, -1, 4024 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4025 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4026 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, 4027 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 4028 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4029 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4030 67, -1, 39, 40, -1, -1, -1, 74, 75, -1, 4031 -1, 78, -1, -1, -1, -1, -1, -1, -1, -1, 4032 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4033 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 4034 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 4035 -1, 118, 119, -1, -1, -1, -1, 94, -1, -1, 4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4037 -1, -1, -1, -1, 111, -1, -1, -1, 115, -1, 4038 -1, 118, 119, 10, 11, 12, 13, 14, 15, 16, 4039 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4040 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4041 -1, -1, 39, 40, 10, 11, 12, 13, 14, 15, 4042 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4043 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4044 67, -1, -1, 39, -1, -1, -1, 74, 75, -1, 4045 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4046 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 4047 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 4048 -1, -1, -1, -1, 111, -1, -1, -1, 115, -1, 4049 -1, 118, 119, -1, -1, -1, -1, -1, 94, -1, 4050 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4051 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 4052 -1, -1, 118, 119, 10, 11, 12, 13, 14, 15, 4053 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4054 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4055 -1, -1, -1, 39, 10, 11, 12, 13, 14, 15, 4056 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4057 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4058 -1, 67, -1, 39, -1, -1, -1, -1, 74, 75, 4059 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 4061 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 4062 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4063 -1, -1, 118, 119, -1, -1, -1, -1, 94, -1, 4064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4065 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4066 -1, -1, 118, 119, 10, 11, 12, 13, 14, 15, 4067 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4068 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4069 -1, -1, -1, 39, 10, 11, 12, 13, 14, 15, 4070 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4071 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4072 -1, 67, -1, 39, -1, -1, -1, -1, 74, 75, 4073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4074 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 4075 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 4076 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4077 -1, -1, 118, 119, -1, -1, -1, -1, 94, -1, 4078 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4079 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4080 -1, -1, 118, 119, 10, 11, 12, 13, 14, 15, 4081 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4082 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4083 -1, -1, -1, 39, 10, 11, 12, 13, 14, 15, 4084 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4085 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4086 -1, 67, -1, 39, -1, -1, -1, -1, 74, 75, 4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4088 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 4089 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 4090 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4091 -1, -1, 118, 119, -1, -1, -1, -1, 94, -1, 4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4093 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4094 -1, -1, 118, 119, 10, 11, 12, 13, 14, 15, 4095 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4096 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4097 -1, -1, -1, 39, 10, 11, 12, 13, 14, 15, 4098 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4099 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4100 -1, 67, -1, 39, -1, -1, -1, -1, 74, 75, 4101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4102 -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, 4103 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 4104 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4105 -1, -1, 118, 119, -1, -1, -1, -1, 94, -1, 4106 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4108 -1, -1, 118, 119, 4, 5, 6, 7, 8, 9, 3952 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3953 -1, -1, 74, 75, 4, 5, 6, 7, 8, 9, 4109 3954 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4110 3955 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 4111 3956 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 4112 -1, 37, 38, -1, 40, 41, -1, 43, -1, -1, 4113 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 4114 56, 57, -1, -1, -1, 61, 62, 67, 64, 69, 4115 66, 71, -1, -1, 74, 75, 72, -1, -1, -1, 4116 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 4117 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3957 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3958 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3959 -1, 30, 31, 32, 33, 34, 35, 67, -1, 69, 3960 39, 71, -1, -1, 74, 75, -1, -1, -1, -1, 4118 3961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4119 110, -1, -1, 109, -1, 111, -1, -1, 114, -1, 4120 -1, -1, 118, 119, 120, 121, 122, 123, -1, -1, 4121 -1, -1, 128, -1, 37, 38, 132, 40, 41, -1, 4122 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 4123 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 4124 -1, 64, -1, 66, -1, -1, -1, -1, -1, 72, 4125 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 4126 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 4127 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 4128 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 4129 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 4130 123, -1, -1, -1, -1, 128, -1, -1, -1, 132, 4131 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4132 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4133 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 4134 -1, -1, -1, -1, -1, 39, -1, 37, 38, -1, 4135 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 4136 50, 51, 52, 53, -1, -1, 56, 57, -1, -1, 4137 -1, 61, 62, 67, 64, 69, 66, 71, -1, -1, 4138 74, 75, 72, -1, -1, -1, 76, -1, -1, 79, 4139 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 4140 -1, -1, 96, -1, 94, -1, -1, -1, -1, -1, 4141 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 4142 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 4143 120, 121, 122, 123, -1, -1, 37, 38, 128, 40, 4144 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 4145 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 4146 61, 62, -1, 64, -1, 66, -1, -1, -1, -1, 4147 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4148 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 4149 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 4150 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 4151 111, -1, -1, 114, -1, -1, -1, 118, 119, 120, 4152 121, 122, 123, -1, -1, 37, 38, 128, 40, 41, 4153 -1, 43, -1, -1, 46, 47, 48, 49, 50, 51, 4154 52, 53, -1, -1, -1, 57, -1, -1, -1, 61, 4155 62, -1, 64, -1, 66, -1, -1, -1, -1, -1, 4156 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4157 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4158 -1, -1, 94, 37, 38, -1, 40, -1, -1, -1, 4159 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4160 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121, 4161 122, 123, 66, -1, -1, -1, 128, -1, 72, -1, 4162 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 4163 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4164 94, 37, 38, -1, 40, -1, -1, -1, -1, -1, 4165 -1, -1, -1, -1, -1, 109, -1, 111, -1, 113, 4166 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4167 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 4168 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 4169 86, 87, -1, -1, -1, -1, -1, -1, 94, 37, 4170 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 4171 -1, -1, -1, 109, -1, 111, -1, -1, 37, 38, 4172 -1, 40, 118, 119, 120, 121, 122, 123, 66, -1, 4173 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 4174 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 4175 -1, -1, -1, 72, -1, -1, 94, 76, -1, -1, 4176 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4177 -1, 109, -1, 111, -1, 94, 37, 38, -1, 40, 4178 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 4179 109, -1, 111, -1, -1, 37, 38, -1, 40, 118, 4180 119, 120, 121, 122, 123, 66, -1, -1, -1, -1, 4181 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4182 81, 82, 83, 84, 66, 86, 87, -1, -1, -1, 4183 72, -1, -1, 94, 76, -1, -1, 79, 80, 81, 4184 82, 83, 84, -1, 86, 87, -1, -1, 109, -1, 4185 -1, -1, 94, -1, -1, -1, -1, 118, 119, 120, 4186 121, 122, 123, -1, -1, -1, -1, 109, -1, -1, 4187 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 4188 122, 123, 4, 5, 6, 7, 8, 9, 10, 11, 4189 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4190 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, 4191 -1, -1, -1, -1, -1, -1, -1, 39, -1, -1, 4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4193 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4194 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 4195 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 4196 -1, 83, 84, 3, 4, 5, 6, 7, 8, 9, 4197 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4198 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 4199 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 4200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4202 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 4203 -1, 71, -1, -1, 74, 75, 3, 4, 5, 6, 4204 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 4205 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4206 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4207 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 4208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4210 67, -1, 69, -1, 71, -1, -1, 74, 75, 4, 4211 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4212 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4213 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 4214 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 4215 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4216 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4217 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 4218 75 3962 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3963 -1, -1, -1, -1, -1, 74, 75 4219 3964 }; 4220 3965 … … 4227 3972 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 4228 3973 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 4229 76, 83, 84, 94, 109, 111, 118, 119, 137, 140, 4230 149, 198, 212, 213, 214, 215, 216, 217, 218, 219, 4231 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 4232 231, 232, 233, 234, 235, 236, 237, 238, 240, 241, 4233 242, 243, 244, 245, 247, 255, 256, 283, 284, 285, 4234 293, 296, 302, 303, 305, 307, 308, 314, 319, 323, 4235 324, 325, 326, 327, 328, 329, 330, 350, 367, 368, 4236 369, 370, 72, 139, 140, 149, 215, 217, 225, 227, 4237 237, 241, 243, 284, 82, 109, 312, 313, 314, 312, 4238 312, 72, 74, 75, 76, 138, 139, 273, 274, 294, 4239 295, 74, 75, 274, 109, 305, 11, 199, 109, 149, 4240 319, 324, 325, 326, 328, 329, 330, 112, 134, 111, 4241 218, 225, 227, 323, 327, 366, 367, 370, 371, 135, 4242 107, 131, 277, 114, 135, 173, 74, 75, 137, 272, 4243 135, 135, 135, 116, 135, 74, 75, 109, 149, 309, 4244 318, 319, 320, 321, 322, 323, 327, 331, 332, 333, 4245 334, 335, 341, 3, 28, 78, 239, 3, 5, 74, 4246 111, 149, 217, 228, 232, 235, 244, 285, 323, 327, 4247 370, 215, 217, 227, 237, 241, 243, 284, 323, 327, 4248 33, 233, 233, 228, 235, 135, 233, 228, 233, 228, 4249 75, 109, 114, 274, 285, 114, 274, 233, 228, 116, 4250 135, 135, 0, 134, 109, 173, 312, 312, 134, 111, 4251 225, 227, 368, 272, 272, 131, 227, 109, 149, 309, 4252 319, 323, 111, 149, 370, 306, 230, 314, 109, 290, 4253 109, 109, 51, 109, 37, 38, 40, 66, 72, 76, 4254 79, 80, 81, 82, 86, 87, 109, 111, 120, 121, 4255 122, 123, 136, 140, 141, 142, 143, 148, 149, 150, 4256 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 4257 161, 162, 164, 166, 225, 276, 292, 366, 371, 227, 4258 110, 110, 110, 110, 110, 110, 110, 74, 75, 111, 4259 225, 272, 350, 368, 111, 118, 149, 164, 217, 218, 4260 224, 227, 231, 232, 237, 240, 241, 243, 262, 263, 4261 267, 268, 269, 270, 284, 350, 362, 363, 364, 365, 4262 370, 371, 112, 109, 323, 327, 370, 109, 116, 132, 4263 111, 114, 149, 164, 278, 278, 115, 134, 116, 132, 4264 109, 116, 132, 116, 132, 116, 132, 312, 132, 319, 4265 320, 321, 322, 332, 333, 334, 335, 227, 318, 331, 4266 64, 311, 111, 312, 349, 350, 312, 312, 173, 134, 4267 109, 312, 349, 312, 312, 227, 309, 109, 109, 226, 4268 227, 225, 227, 112, 134, 225, 366, 371, 173, 134, 4269 272, 277, 217, 232, 323, 327, 173, 134, 294, 227, 4270 237, 132, 227, 227, 292, 248, 246, 258, 274, 257, 4271 227, 294, 132, 132, 305, 134, 139, 271, 3, 135, 4272 207, 208, 222, 224, 227, 134, 311, 109, 311, 164, 4273 319, 227, 109, 134, 272, 114, 33, 34, 35, 225, 4274 286, 287, 289, 134, 129, 131, 291, 134, 228, 234, 4275 235, 272, 315, 316, 317, 109, 141, 109, 148, 109, 4276 148, 151, 109, 148, 109, 109, 148, 148, 111, 164, 4277 169, 173, 225, 275, 366, 370, 112, 134, 82, 85, 4278 86, 87, 109, 111, 113, 114, 97, 98, 99, 100, 4279 101, 102, 103, 104, 105, 106, 131, 168, 151, 151, 4280 118, 124, 125, 120, 121, 88, 89, 90, 91, 126, 4281 127, 92, 93, 119, 128, 129, 94, 95, 130, 131, 4282 373, 109, 149, 345, 346, 347, 348, 349, 110, 116, 4283 109, 349, 350, 109, 349, 350, 134, 109, 225, 368, 4284 112, 134, 135, 111, 225, 227, 361, 362, 370, 371, 4285 135, 109, 111, 149, 319, 336, 337, 338, 339, 340, 4286 341, 342, 343, 344, 350, 351, 352, 353, 354, 355, 4287 356, 149, 370, 227, 135, 135, 149, 225, 227, 363, 4288 272, 225, 350, 363, 272, 109, 134, 134, 134, 112, 4289 134, 72, 80, 111, 113, 140, 274, 278, 279, 280, 4290 281, 282, 134, 134, 134, 134, 134, 134, 309, 110, 4291 110, 110, 110, 110, 110, 110, 318, 331, 109, 277, 4292 112, 207, 134, 309, 169, 276, 169, 276, 309, 111, 4293 207, 311, 173, 134, 207, 110, 40, 111, 115, 225, 4294 249, 250, 251, 366, 114, 116, 372, 131, 259, 114, 4295 227, 264, 265, 266, 269, 270, 110, 116, 173, 134, 4296 118, 164, 134, 224, 227, 263, 362, 370, 303, 304, 4297 109, 149, 336, 110, 116, 373, 274, 286, 109, 114, 4298 274, 276, 286, 110, 116, 109, 141, 110, 117, 275, 4299 275, 275, 111, 139, 145, 164, 276, 275, 112, 134, 4300 110, 116, 110, 109, 149, 349, 357, 358, 359, 360, 4301 110, 116, 164, 111, 139, 111, 144, 145, 134, 111, 4302 139, 144, 164, 164, 151, 151, 151, 152, 152, 153, 4303 153, 154, 154, 154, 154, 155, 155, 156, 157, 158, 4304 159, 160, 117, 169, 164, 134, 346, 347, 348, 227, 4305 345, 312, 312, 164, 276, 134, 271, 134, 225, 350, 4306 363, 227, 231, 112, 112, 134, 370, 112, 109, 134, 4307 319, 337, 338, 339, 342, 352, 353, 354, 112, 134, 4308 227, 336, 340, 351, 109, 312, 355, 373, 312, 312, 4309 373, 109, 312, 355, 312, 312, 312, 312, 350, 225, 4310 361, 371, 272, 112, 116, 112, 116, 373, 225, 363, 4311 373, 260, 261, 262, 263, 260, 260, 272, 164, 134, 4312 111, 274, 117, 116, 372, 278, 80, 111, 117, 282, 4313 29, 209, 210, 272, 260, 139, 309, 139, 311, 109, 4314 349, 350, 109, 349, 350, 141, 350, 173, 264, 110, 4315 110, 110, 110, 112, 173, 207, 173, 114, 250, 251, 4316 112, 134, 109, 117, 149, 252, 254, 318, 319, 331, 4317 357, 116, 132, 116, 132, 274, 248, 274, 115, 162, 4318 163, 258, 135, 135, 139, 222, 135, 135, 260, 109, 4319 149, 370, 135, 115, 227, 287, 288, 135, 134, 134, 4320 109, 135, 110, 316, 169, 170, 117, 132, 111, 141, 4321 200, 201, 202, 110, 116, 110, 134, 117, 110, 110, 4322 110, 111, 164, 358, 359, 360, 227, 357, 312, 312, 4323 114, 151, 166, 164, 165, 167, 116, 135, 134, 134, 4324 110, 116, 164, 134, 115, 162, 117, 264, 110, 110, 4325 110, 345, 264, 110, 260, 225, 363, 111, 118, 149, 3974 76, 83, 84, 109, 111, 117, 118, 137, 140, 149, 3975 198, 212, 213, 214, 215, 216, 217, 218, 219, 220, 3976 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 3977 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 3978 243, 244, 245, 247, 255, 256, 283, 284, 285, 293, 3979 296, 302, 303, 305, 307, 308, 314, 319, 323, 324, 3980 325, 326, 327, 328, 329, 330, 350, 367, 368, 369, 3981 370, 72, 139, 140, 149, 215, 217, 225, 227, 237, 3982 241, 243, 284, 82, 109, 312, 313, 314, 312, 312, 3983 72, 74, 75, 76, 138, 139, 273, 274, 294, 295, 3984 74, 75, 274, 109, 305, 11, 199, 109, 149, 319, 3985 324, 325, 326, 328, 329, 330, 112, 134, 111, 218, 3986 225, 227, 323, 327, 366, 367, 370, 371, 135, 107, 3987 131, 277, 114, 135, 173, 74, 75, 137, 272, 135, 3988 135, 135, 116, 135, 74, 75, 109, 149, 309, 318, 3989 319, 320, 321, 322, 323, 327, 331, 332, 333, 334, 3990 335, 341, 3, 28, 78, 239, 3, 5, 74, 111, 3991 149, 217, 228, 232, 235, 244, 285, 323, 327, 370, 3992 215, 217, 227, 237, 241, 243, 284, 323, 327, 33, 3993 233, 233, 228, 235, 135, 233, 228, 233, 228, 75, 3994 109, 114, 274, 285, 114, 274, 233, 228, 116, 135, 3995 135, 0, 134, 109, 173, 312, 312, 134, 111, 225, 3996 227, 368, 272, 272, 131, 227, 109, 149, 309, 319, 3997 323, 111, 149, 370, 306, 230, 314, 109, 290, 109, 3998 109, 51, 109, 37, 38, 40, 66, 72, 76, 79, 3999 80, 81, 82, 86, 87, 109, 111, 119, 120, 121, 4000 122, 136, 140, 141, 142, 143, 148, 149, 150, 151, 4001 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 4002 162, 164, 167, 225, 276, 292, 366, 371, 227, 110, 4003 110, 110, 110, 110, 110, 110, 74, 75, 111, 225, 4004 272, 350, 368, 111, 117, 149, 164, 217, 218, 224, 4005 227, 231, 232, 237, 240, 241, 243, 262, 263, 267, 4006 268, 269, 270, 284, 350, 362, 363, 364, 365, 370, 4007 371, 112, 109, 323, 327, 370, 109, 116, 132, 111, 4008 114, 149, 164, 278, 278, 115, 134, 116, 132, 109, 4009 116, 132, 116, 132, 116, 132, 312, 132, 319, 320, 4010 321, 322, 332, 333, 334, 335, 227, 318, 331, 64, 4011 311, 111, 312, 349, 350, 312, 312, 173, 134, 109, 4012 312, 349, 312, 312, 227, 309, 109, 109, 226, 227, 4013 225, 227, 112, 134, 225, 366, 371, 173, 134, 272, 4014 277, 217, 232, 323, 327, 173, 134, 294, 227, 237, 4015 132, 227, 227, 292, 248, 246, 258, 274, 257, 227, 4016 294, 132, 132, 305, 134, 139, 271, 3, 135, 207, 4017 208, 222, 224, 227, 134, 311, 109, 311, 164, 319, 4018 227, 109, 134, 272, 114, 33, 34, 35, 225, 286, 4019 287, 289, 134, 128, 131, 291, 134, 228, 234, 235, 4020 272, 315, 316, 317, 109, 141, 109, 148, 109, 148, 4021 151, 109, 148, 109, 109, 148, 148, 111, 164, 169, 4022 173, 225, 275, 366, 370, 112, 134, 82, 85, 86, 4023 87, 109, 111, 113, 114, 97, 98, 99, 100, 101, 4024 102, 103, 104, 105, 106, 131, 166, 151, 151, 117, 4025 123, 124, 119, 120, 88, 89, 90, 91, 125, 126, 4026 92, 93, 118, 127, 128, 94, 95, 129, 131, 373, 4027 109, 149, 345, 346, 347, 348, 349, 110, 116, 109, 4028 349, 350, 109, 349, 350, 134, 109, 225, 368, 112, 4029 134, 135, 111, 225, 227, 361, 362, 370, 371, 135, 4030 109, 111, 149, 319, 336, 337, 338, 339, 340, 341, 4031 342, 343, 344, 350, 351, 352, 353, 354, 355, 356, 4032 149, 370, 227, 135, 135, 149, 225, 227, 363, 272, 4033 225, 350, 363, 272, 109, 134, 134, 134, 112, 134, 4034 72, 111, 113, 140, 274, 278, 279, 280, 281, 282, 4035 134, 134, 134, 134, 134, 134, 309, 110, 110, 110, 4036 110, 110, 110, 110, 318, 331, 109, 277, 112, 207, 4037 134, 309, 169, 276, 169, 276, 309, 111, 207, 311, 4038 173, 134, 207, 110, 40, 111, 115, 225, 249, 250, 4039 251, 366, 114, 116, 372, 131, 259, 114, 227, 264, 4040 265, 266, 269, 270, 110, 116, 173, 134, 117, 164, 4041 134, 224, 227, 263, 362, 370, 303, 304, 109, 149, 4042 336, 110, 116, 373, 274, 286, 109, 114, 274, 276, 4043 286, 110, 116, 109, 141, 110, 130, 275, 275, 275, 4044 145, 164, 276, 275, 112, 134, 110, 116, 110, 109, 4045 149, 349, 357, 358, 359, 360, 110, 116, 164, 111, 4046 139, 144, 145, 134, 111, 139, 144, 164, 151, 151, 4047 151, 152, 152, 153, 153, 154, 154, 154, 154, 155, 4048 155, 156, 157, 158, 159, 160, 130, 169, 164, 134, 4049 346, 347, 348, 227, 345, 312, 312, 164, 276, 134, 4050 271, 134, 225, 350, 363, 227, 231, 112, 112, 134, 4051 370, 112, 109, 134, 319, 337, 338, 339, 342, 352, 4052 353, 354, 112, 134, 227, 336, 340, 351, 109, 312, 4053 355, 373, 312, 312, 373, 109, 312, 355, 312, 312, 4054 312, 312, 350, 225, 361, 371, 272, 112, 116, 112, 4055 116, 373, 225, 363, 373, 260, 261, 262, 263, 260, 4056 260, 272, 164, 134, 111, 274, 130, 116, 372, 278, 4057 111, 130, 282, 29, 209, 210, 272, 260, 139, 309, 4058 139, 311, 109, 349, 350, 109, 349, 350, 141, 350, 4059 173, 264, 110, 110, 110, 110, 112, 173, 207, 173, 4060 114, 250, 251, 112, 134, 109, 130, 149, 252, 254, 4061 318, 319, 331, 357, 116, 132, 116, 132, 274, 248, 4062 274, 115, 162, 163, 258, 135, 135, 139, 222, 135, 4063 135, 260, 109, 149, 370, 135, 115, 227, 287, 288, 4064 135, 134, 134, 109, 135, 110, 316, 169, 170, 130, 4065 132, 111, 141, 200, 201, 202, 110, 116, 110, 110, 4066 110, 110, 111, 164, 358, 359, 360, 227, 357, 312, 4067 312, 114, 151, 167, 164, 165, 168, 116, 135, 134, 4068 110, 116, 164, 134, 115, 162, 130, 264, 110, 110, 4069 110, 345, 264, 110, 260, 225, 363, 111, 117, 149, 4326 4070 164, 164, 227, 342, 264, 110, 110, 110, 110, 110, 4327 4071 110, 110, 7, 227, 336, 340, 351, 134, 134, 373, … … 4329 4073 163, 164, 310, 134, 278, 280, 115, 134, 211, 274, 4330 4074 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 4331 53, 57, 61, 62, 72, 111, 12 8, 170, 171, 172,4075 53, 57, 61, 62, 72, 111, 127, 170, 171, 172, 4332 4076 173, 174, 175, 177, 178, 190, 192, 193, 198, 212, 4333 4077 308, 29, 135, 131, 277, 134, 134, 110, 135, 173, … … 4335 4079 312, 115, 259, 372, 110, 116, 112, 112, 135, 227, 4336 4080 116, 373, 290, 110, 286, 215, 217, 225, 298, 299, 4337 300, 301, 292, 110, 110, 117, 163, 109, 110, 117, 4338 116, 139, 164, 164, 112, 110, 110, 110, 357, 279, 4339 116, 135, 167, 112, 139, 146, 147, 164, 145, 135, 4340 146, 162, 166, 135, 109, 349, 350, 135, 135, 134, 4341 135, 135, 135, 164, 110, 135, 109, 349, 350, 109, 4342 355, 109, 355, 350, 226, 7, 118, 135, 164, 264, 4343 264, 263, 267, 267, 268, 116, 116, 110, 110, 112, 4344 96, 123, 135, 135, 146, 278, 164, 116, 132, 212, 4345 216, 227, 231, 109, 109, 171, 109, 109, 72, 132, 4346 72, 132, 72, 118, 170, 109, 173, 165, 165, 117, 4347 112, 143, 132, 135, 134, 135, 211, 110, 164, 264, 4348 264, 312, 110, 115, 252, 115, 134, 110, 134, 135, 4349 309, 115, 134, 135, 135, 110, 114, 200, 112, 163, 4350 132, 200, 202, 110, 116, 135, 109, 349, 350, 372, 4351 165, 112, 135, 85, 113, 116, 135, 135, 112, 135, 4352 110, 134, 110, 110, 112, 112, 112, 135, 110, 134, 4353 134, 134, 164, 164, 135, 112, 135, 135, 135, 135, 4354 134, 134, 163, 163, 112, 112, 135, 135, 274, 227, 4355 169, 169, 47, 169, 134, 132, 132, 132, 169, 132, 4356 169, 58, 59, 60, 194, 195, 196, 132, 63, 132, 4357 312, 114, 175, 115, 132, 135, 135, 96, 269, 270, 4358 110, 299, 116, 132, 116, 132, 115, 297, 117, 141, 4359 110, 110, 117, 167, 112, 134, 115, 112, 111, 147, 4360 111, 147, 147, 112, 112, 112, 264, 112, 264, 264, 4361 264, 135, 135, 112, 112, 110, 110, 112, 116, 96, 4362 263, 96, 135, 112, 112, 110, 110, 109, 110, 170, 4363 191, 212, 132, 110, 109, 109, 173, 196, 58, 59, 4364 164, 171, 144, 110, 110, 114, 134, 134, 298, 141, 4365 203, 109, 132, 203, 135, 117, 264, 134, 134, 135, 4366 135, 135, 135, 112, 112, 134, 135, 112, 171, 44, 4367 45, 114, 181, 182, 183, 169, 171, 135, 110, 170, 4368 114, 183, 96, 134, 96, 134, 109, 109, 132, 115, 4369 134, 272, 309, 115, 116, 117, 163, 110, 112, 164, 4370 135, 146, 146, 110, 110, 110, 110, 267, 42, 163, 4371 179, 180, 310, 117, 134, 171, 181, 110, 132, 171, 4372 132, 134, 110, 134, 110, 134, 96, 134, 96, 134, 4373 132, 298, 141, 139, 204, 110, 132, 117, 110, 135, 4374 135, 171, 96, 116, 117, 135, 205, 206, 212, 132, 4375 170, 170, 205, 173, 197, 225, 366, 173, 197, 110, 4376 134, 110, 134, 115, 110, 116, 164, 112, 112, 163, 4377 179, 182, 184, 185, 134, 132, 182, 186, 187, 135, 4378 109, 149, 309, 357, 139, 135, 173, 197, 173, 197, 4379 109, 132, 139, 171, 176, 115, 182, 212, 170, 56, 4380 176, 189, 115, 182, 110, 227, 110, 135, 135, 292, 4381 171, 176, 132, 188, 189, 176, 189, 173, 173, 110, 4382 110, 110, 188, 135, 135, 173, 173, 135, 135 4081 300, 301, 292, 110, 110, 130, 163, 109, 110, 130, 4082 116, 139, 112, 110, 110, 110, 357, 279, 116, 135, 4083 168, 112, 139, 146, 147, 145, 135, 146, 162, 167, 4084 135, 109, 349, 350, 135, 135, 134, 135, 135, 135, 4085 164, 110, 135, 109, 349, 350, 109, 355, 109, 355, 4086 350, 226, 7, 117, 135, 164, 264, 264, 263, 267, 4087 267, 268, 116, 116, 110, 110, 112, 96, 122, 135, 4088 135, 146, 278, 164, 116, 132, 212, 216, 227, 231, 4089 109, 109, 171, 109, 109, 72, 132, 72, 132, 72, 4090 117, 170, 109, 173, 165, 165, 130, 112, 143, 132, 4091 135, 134, 135, 211, 110, 164, 264, 264, 312, 110, 4092 115, 252, 115, 134, 110, 134, 135, 309, 115, 134, 4093 135, 135, 110, 114, 200, 112, 163, 132, 200, 202, 4094 110, 109, 349, 350, 372, 165, 112, 135, 85, 113, 4095 116, 135, 112, 135, 110, 134, 110, 110, 112, 112, 4096 112, 135, 110, 134, 134, 134, 164, 164, 135, 112, 4097 135, 135, 135, 135, 134, 134, 163, 163, 112, 112, 4098 135, 135, 274, 227, 169, 169, 47, 169, 134, 132, 4099 132, 132, 169, 132, 169, 58, 59, 60, 194, 195, 4100 196, 132, 63, 132, 312, 114, 175, 115, 132, 135, 4101 135, 96, 269, 270, 110, 299, 116, 132, 116, 132, 4102 115, 297, 130, 141, 110, 110, 130, 134, 115, 112, 4103 111, 147, 111, 147, 147, 112, 112, 264, 112, 264, 4104 264, 264, 135, 135, 112, 112, 110, 110, 112, 116, 4105 96, 263, 96, 135, 112, 112, 110, 110, 109, 110, 4106 170, 191, 212, 132, 110, 109, 109, 173, 196, 58, 4107 59, 164, 171, 144, 110, 110, 114, 134, 134, 298, 4108 141, 203, 109, 132, 203, 264, 134, 134, 135, 135, 4109 135, 135, 112, 112, 134, 135, 112, 171, 44, 45, 4110 114, 181, 182, 183, 169, 171, 135, 110, 170, 114, 4111 183, 96, 134, 96, 134, 109, 109, 132, 115, 134, 4112 272, 309, 115, 116, 130, 163, 110, 135, 146, 146, 4113 110, 110, 110, 110, 267, 42, 163, 179, 180, 310, 4114 130, 134, 171, 181, 110, 132, 171, 132, 134, 110, 4115 134, 110, 134, 96, 134, 96, 134, 132, 298, 141, 4116 139, 204, 110, 132, 110, 135, 135, 171, 96, 116, 4117 130, 135, 205, 206, 212, 132, 170, 170, 205, 173, 4118 197, 225, 366, 173, 197, 110, 134, 110, 134, 115, 4119 110, 116, 112, 112, 163, 179, 182, 184, 185, 134, 4120 132, 182, 186, 187, 135, 109, 149, 309, 357, 139, 4121 135, 173, 197, 173, 197, 109, 132, 139, 171, 176, 4122 115, 182, 212, 170, 56, 176, 189, 115, 182, 110, 4123 227, 110, 135, 135, 292, 171, 176, 132, 188, 189, 4124 176, 189, 173, 173, 110, 110, 110, 188, 135, 135, 4125 173, 173, 135, 135 4383 4126 }; 4384 4127 … … 5217 4960 5218 4961 /* Line 1806 of yacc.c */ 5219 #line 29 2"parser.yy"4962 #line 299 "parser.yy" 5220 4963 { 5221 4964 typedefTable.enterScope(); … … 5226 4969 5227 4970 /* Line 1806 of yacc.c */ 5228 #line 298"parser.yy"4971 #line 305 "parser.yy" 5229 4972 { 5230 4973 typedefTable.leaveScope(); … … 5235 4978 5236 4979 /* Line 1806 of yacc.c */ 5237 #line 3 07"parser.yy"5238 { (yyval. constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); }4980 #line 314 "parser.yy" 4981 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 5239 4982 break; 5240 4983 … … 5242 4985 5243 4986 /* Line 1806 of yacc.c */ 5244 #line 3 08"parser.yy"5245 { (yyval. constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); }4987 #line 315 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 5246 4989 break; 5247 4990 … … 5249 4992 5250 4993 /* Line 1806 of yacc.c */ 5251 #line 3 09"parser.yy"5252 { (yyval. constant) = makeConstantChar( *(yyvsp[(1) - (1)].tok) ); }4994 #line 316 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 5253 4996 break; 5254 4997 … … 5256 4999 5257 5000 /* Line 1806 of yacc.c */ 5258 #line 3 34"parser.yy"5259 { (yyval.constant) = makeConstantStr( *(yyvsp[(1) - (1)].tok) ); }5001 #line 341 "parser.yy" 5002 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); } 5260 5003 break; 5261 5004 … … 5263 5006 5264 5007 /* Line 1806 of yacc.c */ 5265 #line 335 "parser.yy" 5266 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5008 #line 343 "parser.yy" 5009 { 5010 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); 5011 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5012 (yyval.constant) = (yyvsp[(1) - (2)].constant); 5013 } 5267 5014 break; 5268 5015 … … 5270 5017 5271 5018 /* Line 1806 of yacc.c */ 5272 #line 3 42"parser.yy"5273 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5019 #line 354 "parser.yy" 5020 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5274 5021 break; 5275 5022 … … 5277 5024 5278 5025 /* Line 1806 of yacc.c */ 5279 #line 3 44"parser.yy"5280 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5026 #line 356 "parser.yy" 5027 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5281 5028 break; 5282 5029 … … 5284 5031 5285 5032 /* Line 1806 of yacc.c */ 5286 #line 3 46"parser.yy"5033 #line 358 "parser.yy" 5287 5034 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5288 5035 break; … … 5291 5038 5292 5039 /* Line 1806 of yacc.c */ 5293 #line 3 48"parser.yy"5294 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }5040 #line 360 "parser.yy" 5041 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5295 5042 break; 5296 5043 … … 5298 5045 5299 5046 /* Line 1806 of yacc.c */ 5300 #line 3 58"parser.yy"5301 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }5047 #line 370 "parser.yy" 5048 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5302 5049 break; 5303 5050 … … 5305 5052 5306 5053 /* Line 1806 of yacc.c */ 5307 #line 3 60"parser.yy"5308 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }5054 #line 372 "parser.yy" 5055 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5309 5056 break; 5310 5057 … … 5312 5059 5313 5060 /* Line 1806 of yacc.c */ 5314 #line 3 64"parser.yy"5315 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }5061 #line 376 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5316 5063 break; 5317 5064 … … 5319 5066 5320 5067 /* Line 1806 of yacc.c */ 5321 #line 3 67"parser.yy"5322 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); }5068 #line 379 "parser.yy" 5069 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5323 5070 break; 5324 5071 … … 5326 5073 5327 5074 /* Line 1806 of yacc.c */ 5328 #line 3 70"parser.yy"5329 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, (yyvsp[(1) - (2)].en) ) ); }5075 #line 382 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5330 5077 break; 5331 5078 … … 5333 5080 5334 5081 /* Line 1806 of yacc.c */ 5335 #line 3 72"parser.yy"5336 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, (yyvsp[(1) - (2)].en) ) ); }5082 #line 384 "parser.yy" 5083 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5337 5084 break; 5338 5085 … … 5340 5087 5341 5088 /* Line 1806 of yacc.c */ 5342 #line 3 74"parser.yy"5343 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true) ); }5089 #line 386 "parser.yy" 5090 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5344 5091 break; 5345 5092 … … 5347 5094 5348 5095 /* Line 1806 of yacc.c */ 5349 #line 3 76"parser.yy"5096 #line 388 "parser.yy" 5350 5097 { 5351 Token fn; fn.str = new std::string( "?{}" ); // location undefined 5352 (yyval.en) = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ); 5098 Token fn; 5099 fn.str = new std::string( "?{}" ); // location undefined 5100 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_link( (yyvsp[(3) - (4)].en) ) ) ); 5353 5101 } 5354 5102 break; … … 5357 5105 5358 5106 /* Line 1806 of yacc.c */ 5359 #line 3 85"parser.yy"5107 #line 398 "parser.yy" 5360 5108 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5361 5109 break; … … 5364 5112 5365 5113 /* Line 1806 of yacc.c */ 5366 #line 390"parser.yy"5114 #line 403 "parser.yy" 5367 5115 { (yyval.en) = 0; } 5368 5116 break; 5369 5117 5370 case 37:5371 5372 /* Line 1806 of yacc.c */5373 #line 393 "parser.yy"5374 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }5375 break;5376 5377 5118 case 38: 5378 5119 5379 5120 /* Line 1806 of yacc.c */ 5380 #line 398"parser.yy"5381 { (yyval.en) = ( yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }5121 #line 409 "parser.yy" 5122 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5382 5123 break; 5383 5124 … … 5385 5126 5386 5127 /* Line 1806 of yacc.c */ 5387 #line 400 "parser.yy" 5388 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5128 #line 414 "parser.yy" 5129 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5130 break; 5131 5132 case 40: 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 418 "parser.yy" 5136 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5389 5137 break; 5390 5138 … … 5392 5140 5393 5141 /* Line 1806 of yacc.c */ 5394 #line 405 "parser.yy" 5142 #line 420 "parser.yy" 5143 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5144 break; 5145 5146 case 42: 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 422 "parser.yy" 5150 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5151 break; 5152 5153 case 43: 5154 5155 /* Line 1806 of yacc.c */ 5156 #line 424 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5158 break; 5159 5160 case 45: 5161 5162 /* Line 1806 of yacc.c */ 5163 #line 432 "parser.yy" 5164 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5165 break; 5166 5167 case 46: 5168 5169 /* Line 1806 of yacc.c */ 5170 #line 434 "parser.yy" 5171 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5172 break; 5173 5174 case 47: 5175 5176 /* Line 1806 of yacc.c */ 5177 #line 436 "parser.yy" 5178 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5179 break; 5180 5181 case 48: 5182 5183 /* Line 1806 of yacc.c */ 5184 #line 441 "parser.yy" 5185 { 5186 switch ( (yyvsp[(1) - (2)].op) ) { 5187 case OperKinds::AddressOf: 5188 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 5189 break; 5190 case OperKinds::PointTo: 5191 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 5192 break; 5193 default: 5194 assert( false ); 5195 } 5196 } 5197 break; 5198 5199 case 49: 5200 5201 /* Line 1806 of yacc.c */ 5202 #line 454 "parser.yy" 5203 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5204 break; 5205 5206 case 50: 5207 5208 /* Line 1806 of yacc.c */ 5209 #line 456 "parser.yy" 5210 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5211 break; 5212 5213 case 51: 5214 5215 /* Line 1806 of yacc.c */ 5216 #line 458 "parser.yy" 5217 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5218 break; 5219 5220 case 52: 5221 5222 /* Line 1806 of yacc.c */ 5223 #line 460 "parser.yy" 5224 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5225 break; 5226 5227 case 53: 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 462 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5232 break; 5233 5234 case 54: 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 464 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5239 break; 5240 5241 case 55: 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 466 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5246 break; 5247 5248 case 56: 5249 5250 /* Line 1806 of yacc.c */ 5251 #line 468 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5253 break; 5254 5255 case 57: 5256 5257 /* Line 1806 of yacc.c */ 5258 #line 470 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5260 break; 5261 5262 case 58: 5263 5264 /* Line 1806 of yacc.c */ 5265 #line 472 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5267 break; 5268 5269 case 59: 5270 5271 /* Line 1806 of yacc.c */ 5272 #line 474 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5274 break; 5275 5276 case 60: 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 480 "parser.yy" 5280 { (yyval.op) = OperKinds::PointTo; } 5281 break; 5282 5283 case 61: 5284 5285 /* Line 1806 of yacc.c */ 5286 #line 481 "parser.yy" 5287 { (yyval.op) = OperKinds::AddressOf; } 5288 break; 5289 5290 case 62: 5291 5292 /* Line 1806 of yacc.c */ 5293 #line 487 "parser.yy" 5294 { (yyval.op) = OperKinds::UnPlus; } 5295 break; 5296 5297 case 63: 5298 5299 /* Line 1806 of yacc.c */ 5300 #line 488 "parser.yy" 5301 { (yyval.op) = OperKinds::UnMinus; } 5302 break; 5303 5304 case 64: 5305 5306 /* Line 1806 of yacc.c */ 5307 #line 489 "parser.yy" 5308 { (yyval.op) = OperKinds::Neg; } 5309 break; 5310 5311 case 65: 5312 5313 /* Line 1806 of yacc.c */ 5314 #line 490 "parser.yy" 5315 { (yyval.op) = OperKinds::BitNeg; } 5316 break; 5317 5318 case 67: 5319 5320 /* Line 1806 of yacc.c */ 5321 #line 496 "parser.yy" 5322 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5323 break; 5324 5325 case 68: 5326 5327 /* Line 1806 of yacc.c */ 5328 #line 498 "parser.yy" 5329 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5330 break; 5331 5332 case 70: 5333 5334 /* Line 1806 of yacc.c */ 5335 #line 504 "parser.yy" 5336 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5337 break; 5338 5339 case 71: 5340 5341 /* Line 1806 of yacc.c */ 5342 #line 506 "parser.yy" 5343 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5344 break; 5345 5346 case 72: 5347 5348 /* Line 1806 of yacc.c */ 5349 #line 508 "parser.yy" 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5351 break; 5352 5353 case 74: 5354 5355 /* Line 1806 of yacc.c */ 5356 #line 514 "parser.yy" 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5358 break; 5359 5360 case 75: 5361 5362 /* Line 1806 of yacc.c */ 5363 #line 516 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5365 break; 5366 5367 case 77: 5368 5369 /* Line 1806 of yacc.c */ 5370 #line 522 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5372 break; 5373 5374 case 78: 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 524 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5379 break; 5380 5381 case 80: 5382 5383 /* Line 1806 of yacc.c */ 5384 #line 530 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5386 break; 5387 5388 case 81: 5389 5390 /* Line 1806 of yacc.c */ 5391 #line 532 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5393 break; 5394 5395 case 82: 5396 5397 /* Line 1806 of yacc.c */ 5398 #line 534 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5400 break; 5401 5402 case 83: 5403 5404 /* Line 1806 of yacc.c */ 5405 #line 536 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5407 break; 5408 5409 case 85: 5410 5411 /* Line 1806 of yacc.c */ 5412 #line 542 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5414 break; 5415 5416 case 86: 5417 5418 /* Line 1806 of yacc.c */ 5419 #line 544 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5421 break; 5422 5423 case 88: 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 550 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5428 break; 5429 5430 case 90: 5431 5432 /* Line 1806 of yacc.c */ 5433 #line 556 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5435 break; 5436 5437 case 92: 5438 5439 /* Line 1806 of yacc.c */ 5440 #line 562 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5442 break; 5443 5444 case 94: 5445 5446 /* Line 1806 of yacc.c */ 5447 #line 568 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5449 break; 5450 5451 case 96: 5452 5453 /* Line 1806 of yacc.c */ 5454 #line 574 "parser.yy" 5455 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5456 break; 5457 5458 case 98: 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 580 "parser.yy" 5462 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5463 break; 5464 5465 case 99: 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 583 "parser.yy" 5469 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5470 break; 5471 5472 case 100: 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 585 "parser.yy" 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5477 break; 5478 5479 case 103: 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 596 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5484 break; 5485 5486 case 104: 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 598 "parser.yy" 5490 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5491 break; 5492 5493 case 105: 5494 5495 /* Line 1806 of yacc.c */ 5496 #line 603 "parser.yy" 5497 { (yyval.en) = nullptr; } 5498 break; 5499 5500 case 107: 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 608 "parser.yy" 5504 { (yyval.op) = OperKinds::Assign; } 5505 break; 5506 5507 case 108: 5508 5509 /* Line 1806 of yacc.c */ 5510 #line 609 "parser.yy" 5511 { (yyval.op) = OperKinds::MulAssn; } 5512 break; 5513 5514 case 109: 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 610 "parser.yy" 5518 { (yyval.op) = OperKinds::DivAssn; } 5519 break; 5520 5521 case 110: 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 611 "parser.yy" 5525 { (yyval.op) = OperKinds::ModAssn; } 5526 break; 5527 5528 case 111: 5529 5530 /* Line 1806 of yacc.c */ 5531 #line 612 "parser.yy" 5532 { (yyval.op) = OperKinds::PlusAssn; } 5533 break; 5534 5535 case 112: 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 613 "parser.yy" 5539 { (yyval.op) = OperKinds::MinusAssn; } 5540 break; 5541 5542 case 113: 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 614 "parser.yy" 5546 { (yyval.op) = OperKinds::LSAssn; } 5547 break; 5548 5549 case 114: 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 615 "parser.yy" 5553 { (yyval.op) = OperKinds::RSAssn; } 5554 break; 5555 5556 case 115: 5557 5558 /* Line 1806 of yacc.c */ 5559 #line 616 "parser.yy" 5560 { (yyval.op) = OperKinds::AndAssn; } 5561 break; 5562 5563 case 116: 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 617 "parser.yy" 5567 { (yyval.op) = OperKinds::ERAssn; } 5568 break; 5569 5570 case 117: 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 618 "parser.yy" 5574 { (yyval.op) = OperKinds::OrAssn; } 5575 break; 5576 5577 case 118: 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 625 "parser.yy" 5581 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5582 break; 5583 5584 case 119: 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 627 "parser.yy" 5588 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5589 break; 5590 5591 case 120: 5592 5593 /* Line 1806 of yacc.c */ 5594 #line 629 "parser.yy" 5595 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_link( (yyvsp[(4) - (6)].en) ) ) ); } 5596 break; 5597 5598 case 121: 5599 5600 /* Line 1806 of yacc.c */ 5601 #line 631 "parser.yy" 5602 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( (yyvsp[(5) - (7)].en) ) ) ); } 5603 break; 5604 5605 case 123: 5606 5607 /* Line 1806 of yacc.c */ 5608 #line 637 "parser.yy" 5395 5609 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5396 5610 break; 5397 5611 5398 case 42:5399 5400 /* Line 1806 of yacc.c */5401 #line 410 "parser.yy"5402 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5403 break;5404 5405 case 43:5406 5407 /* Line 1806 of yacc.c */5408 #line 414 "parser.yy"5409 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); }5410 break;5411 5412 case 44:5413 5414 /* Line 1806 of yacc.c */5415 #line 416 "parser.yy"5416 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); }5417 break;5418 5419 case 45:5420 5421 /* Line 1806 of yacc.c */5422 #line 418 "parser.yy"5423 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); }5424 break;5425 5426 case 46:5427 5428 /* Line 1806 of yacc.c */5429 #line 420 "parser.yy"5430 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); }5431 break;5432 5433 case 48:5434 5435 /* Line 1806 of yacc.c */5436 #line 428 "parser.yy"5437 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5438 break;5439 5440 case 49:5441 5442 /* Line 1806 of yacc.c */5443 #line 430 "parser.yy"5444 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5445 break;5446 5447 case 50:5448 5449 /* Line 1806 of yacc.c */5450 #line 432 "parser.yy"5451 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }5452 break;5453 5454 case 51:5455 5456 /* Line 1806 of yacc.c */5457 #line 437 "parser.yy"5458 { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) )5459 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); }5460 break;5461 5462 case 52:5463 5464 /* Line 1806 of yacc.c */5465 #line 440 "parser.yy"5466 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5467 break;5468 5469 case 53:5470 5471 /* Line 1806 of yacc.c */5472 #line 442 "parser.yy"5473 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Incr, (yyvsp[(2) - (2)].en) ) ); }5474 break;5475 5476 case 54:5477 5478 /* Line 1806 of yacc.c */5479 #line 444 "parser.yy"5480 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Decr, (yyvsp[(2) - (2)].en) ) ); }5481 break;5482 5483 case 55:5484 5485 /* Line 1806 of yacc.c */5486 #line 446 "parser.yy"5487 { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); }5488 break;5489 5490 case 56:5491 5492 /* Line 1806 of yacc.c */5493 #line 448 "parser.yy"5494 { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }5495 break;5496 5497 case 57:5498 5499 /* Line 1806 of yacc.c */5500 #line 450 "parser.yy"5501 { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); }5502 break;5503 5504 case 58:5505 5506 /* Line 1806 of yacc.c */5507 #line 452 "parser.yy"5508 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }5509 break;5510 5511 case 59:5512 5513 /* Line 1806 of yacc.c */5514 #line 454 "parser.yy"5515 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }5516 break;5517 5518 case 60:5519 5520 /* Line 1806 of yacc.c */5521 #line 456 "parser.yy"5522 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }5523 break;5524 5525 case 61:5526 5527 /* Line 1806 of yacc.c */5528 #line 458 "parser.yy"5529 { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); }5530 break;5531 5532 case 62:5533 5534 /* Line 1806 of yacc.c */5535 #line 460 "parser.yy"5536 { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); }5537 break;5538 5539 case 63:5540 5541 /* Line 1806 of yacc.c */5542 #line 466 "parser.yy"5543 { (yyval.op) = OperatorNode::PointTo; }5544 break;5545 5546 case 64:5547 5548 /* Line 1806 of yacc.c */5549 #line 467 "parser.yy"5550 { (yyval.op) = OperatorNode::AddressOf; }5551 break;5552 5553 case 65:5554 5555 /* Line 1806 of yacc.c */5556 #line 469 "parser.yy"5557 { (yyval.op) = OperatorNode::And; }5558 break;5559 5560 case 66:5561 5562 /* Line 1806 of yacc.c */5563 #line 473 "parser.yy"5564 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }5565 break;5566 5567 case 67:5568 5569 /* Line 1806 of yacc.c */5570 #line 474 "parser.yy"5571 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }5572 break;5573 5574 case 68:5575 5576 /* Line 1806 of yacc.c */5577 #line 475 "parser.yy"5578 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); }5579 break;5580 5581 case 69:5582 5583 /* Line 1806 of yacc.c */5584 #line 476 "parser.yy"5585 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }5586 break;5587 5588 case 71:5589 5590 /* Line 1806 of yacc.c */5591 #line 482 "parser.yy"5592 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }5593 break;5594 5595 case 72:5596 5597 /* Line 1806 of yacc.c */5598 #line 484 "parser.yy"5599 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); }5600 break;5601 5602 case 74:5603 5604 /* Line 1806 of yacc.c */5605 #line 490 "parser.yy"5606 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5607 break;5608 5609 case 75:5610 5611 /* Line 1806 of yacc.c */5612 #line 492 "parser.yy"5613 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5614 break;5615 5616 case 76:5617 5618 /* Line 1806 of yacc.c */5619 #line 494 "parser.yy"5620 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5621 break;5622 5623 case 78:5624 5625 /* Line 1806 of yacc.c */5626 #line 500 "parser.yy"5627 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5628 break;5629 5630 case 79:5631 5632 /* Line 1806 of yacc.c */5633 #line 502 "parser.yy"5634 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5635 break;5636 5637 case 81:5638 5639 /* Line 1806 of yacc.c */5640 #line 508 "parser.yy"5641 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5642 break;5643 5644 case 82:5645 5646 /* Line 1806 of yacc.c */5647 #line 510 "parser.yy"5648 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5649 break;5650 5651 case 84:5652 5653 /* Line 1806 of yacc.c */5654 #line 516 "parser.yy"5655 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5656 break;5657 5658 case 85:5659 5660 /* Line 1806 of yacc.c */5661 #line 518 "parser.yy"5662 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5663 break;5664 5665 case 86:5666 5667 /* Line 1806 of yacc.c */5668 #line 520 "parser.yy"5669 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5670 break;5671 5672 case 87:5673 5674 /* Line 1806 of yacc.c */5675 #line 522 "parser.yy"5676 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5677 break;5678 5679 case 89:5680 5681 /* Line 1806 of yacc.c */5682 #line 528 "parser.yy"5683 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5684 break;5685 5686 case 90:5687 5688 /* Line 1806 of yacc.c */5689 #line 530 "parser.yy"5690 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5691 break;5692 5693 case 92:5694 5695 /* Line 1806 of yacc.c */5696 #line 536 "parser.yy"5697 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5698 break;5699 5700 case 94:5701 5702 /* Line 1806 of yacc.c */5703 #line 542 "parser.yy"5704 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5705 break;5706 5707 case 96:5708 5709 /* Line 1806 of yacc.c */5710 #line 548 "parser.yy"5711 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }5712 break;5713 5714 case 98:5715 5716 /* Line 1806 of yacc.c */5717 #line 554 "parser.yy"5718 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }5719 break;5720 5721 case 100:5722 5723 /* Line 1806 of yacc.c */5724 #line 560 "parser.yy"5725 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }5726 break;5727 5728 case 102:5729 5730 /* Line 1806 of yacc.c */5731 #line 567 "parser.yy"5732 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }5733 break;5734 5735 case 103:5736 5737 /* Line 1806 of yacc.c */5738 #line 569 "parser.yy"5739 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }5740 break;5741 5742 case 104:5743 5744 /* Line 1806 of yacc.c */5745 #line 571 "parser.yy"5746 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }5747 break;5748 5749 case 107:5750 5751 /* Line 1806 of yacc.c */5752 #line 582 "parser.yy"5753 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5754 break;5755 5756 case 108:5757 5758 /* Line 1806 of yacc.c */5759 #line 584 "parser.yy"5760 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5761 break;5762 5763 case 109:5764 5765 /* Line 1806 of yacc.c */5766 #line 586 "parser.yy"5767 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5768 break;5769 5770 case 110:5771 5772 /* Line 1806 of yacc.c */5773 #line 591 "parser.yy"5774 { (yyval.en) = new NullExprNode; }5775 break;5776 5777 case 112:5778 5779 /* Line 1806 of yacc.c */5780 #line 599 "parser.yy"5781 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }5782 break;5783 5784 case 113:5785 5786 /* Line 1806 of yacc.c */5787 #line 601 "parser.yy"5788 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }5789 break;5790 5791 case 114:5792 5793 /* Line 1806 of yacc.c */5794 #line 603 "parser.yy"5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }5796 break;5797 5798 case 115:5799 5800 /* Line 1806 of yacc.c */5801 #line 605 "parser.yy"5802 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }5803 break;5804 5805 case 117:5806 5807 /* Line 1806 of yacc.c */5808 #line 611 "parser.yy"5809 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }5810 break;5811 5812 case 118:5813 5814 /* Line 1806 of yacc.c */5815 #line 615 "parser.yy"5816 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }5817 break;5818 5819 case 119:5820 5821 /* Line 1806 of yacc.c */5822 #line 616 "parser.yy"5823 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }5824 break;5825 5826 case 120:5827 5828 /* Line 1806 of yacc.c */5829 #line 617 "parser.yy"5830 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }5831 break;5832 5833 case 121:5834 5835 /* Line 1806 of yacc.c */5836 #line 618 "parser.yy"5837 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }5838 break;5839 5840 case 122:5841 5842 /* Line 1806 of yacc.c */5843 #line 619 "parser.yy"5844 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }5845 break;5846 5847 case 123:5848 5849 /* Line 1806 of yacc.c */5850 #line 620 "parser.yy"5851 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }5852 break;5853 5854 case 124:5855 5856 /* Line 1806 of yacc.c */5857 #line 621 "parser.yy"5858 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }5859 break;5860 5861 5612 case 125: 5862 5613 5863 5614 /* Line 1806 of yacc.c */ 5864 #line 6 22"parser.yy"5865 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn); }5615 #line 643 "parser.yy" 5616 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5866 5617 break; 5867 5618 … … 5869 5620 5870 5621 /* Line 1806 of yacc.c */ 5871 #line 623 "parser.yy" 5872 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5873 break; 5874 5875 case 127: 5876 5877 /* Line 1806 of yacc.c */ 5878 #line 624 "parser.yy" 5879 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5880 break; 5881 5882 case 129: 5883 5884 /* Line 1806 of yacc.c */ 5885 #line 631 "parser.yy" 5886 { (yyval.en) = new CompositeExprNode2( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5622 #line 648 "parser.yy" 5623 { (yyval.en) = 0; } 5887 5624 break; 5888 5625 … … 5890 5627 5891 5628 /* Line 1806 of yacc.c */ 5892 #line 636 "parser.yy" 5893 { (yyval.en) = 0; } 5894 break; 5895 5896 case 134: 5897 5898 /* Line 1806 of yacc.c */ 5899 #line 645 "parser.yy" 5629 #line 657 "parser.yy" 5900 5630 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5901 5631 break; 5902 5632 5903 case 1 40:5904 5905 /* Line 1806 of yacc.c */ 5906 #line 6 52"parser.yy"5633 case 136: 5634 5635 /* Line 1806 of yacc.c */ 5636 #line 664 "parser.yy" 5907 5637 { 5908 Token fn; fn.str = new std::string( "^?{}" ); // location undefined5909 (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),5910 (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ), 0 );5638 Token fn; 5639 fn.str = new std::string( "^?{}" ); // location undefined 5640 (yyval.sn) = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_link( (yyvsp[(4) - (6)].en) ) ) ), 0 ); 5911 5641 } 5912 5642 break; 5913 5643 5914 case 1 41:5915 5916 /* Line 1806 of yacc.c */ 5917 #line 6 62"parser.yy"5644 case 137: 5645 5646 /* Line 1806 of yacc.c */ 5647 #line 674 "parser.yy" 5918 5648 { 5919 5649 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5921 5651 break; 5922 5652 5653 case 138: 5654 5655 /* Line 1806 of yacc.c */ 5656 #line 681 "parser.yy" 5657 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5658 break; 5659 5660 case 139: 5661 5662 /* Line 1806 of yacc.c */ 5663 #line 688 "parser.yy" 5664 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5665 break; 5666 5667 case 141: 5668 5669 /* Line 1806 of yacc.c */ 5670 #line 694 "parser.yy" 5671 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5672 break; 5673 5923 5674 case 142: 5924 5675 5925 5676 /* Line 1806 of yacc.c */ 5926 #line 6 69 "parser.yy"5927 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0); }5677 #line 699 "parser.yy" 5678 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5928 5679 break; 5929 5680 … … 5931 5682 5932 5683 /* Line 1806 of yacc.c */ 5933 #line 676 "parser.yy" 5934 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5935 break; 5936 5937 case 145: 5938 5939 /* Line 1806 of yacc.c */ 5940 #line 682 "parser.yy" 5941 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5942 break; 5943 5944 case 146: 5945 5946 /* Line 1806 of yacc.c */ 5947 #line 687 "parser.yy" 5948 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5949 break; 5950 5951 case 147: 5952 5953 /* Line 1806 of yacc.c */ 5954 #line 689 "parser.yy" 5684 #line 701 "parser.yy" 5955 5685 { // mark all fields in list 5956 5686 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 5960 5690 break; 5961 5691 5692 case 144: 5693 5694 /* Line 1806 of yacc.c */ 5695 #line 707 "parser.yy" 5696 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5697 break; 5698 5699 case 147: 5700 5701 /* Line 1806 of yacc.c */ 5702 #line 714 "parser.yy" 5703 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5704 break; 5705 5962 5706 case 148: 5963 5707 5964 5708 /* Line 1806 of yacc.c */ 5965 #line 695 "parser.yy" 5966 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5709 #line 719 "parser.yy" 5710 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5711 break; 5712 5713 case 149: 5714 5715 /* Line 1806 of yacc.c */ 5716 #line 726 "parser.yy" 5717 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5718 break; 5719 5720 case 150: 5721 5722 /* Line 1806 of yacc.c */ 5723 #line 729 "parser.yy" 5724 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5967 5725 break; 5968 5726 … … 5970 5728 5971 5729 /* Line 1806 of yacc.c */ 5972 #line 7 02 "parser.yy"5973 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); }}5730 #line 732 "parser.yy" 5731 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5974 5732 break; 5975 5733 … … 5977 5735 5978 5736 /* Line 1806 of yacc.c */ 5979 #line 707 "parser.yy" 5980 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5981 break; 5982 5983 case 153: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 713 "parser.yy" 5987 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5988 break; 5989 5990 case 154: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 715 "parser.yy" 5994 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5995 break; 5996 5997 case 155: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 717 "parser.yy" 6001 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6002 break; 6003 6004 case 156: 6005 6006 /* Line 1806 of yacc.c */ 6007 #line 719 "parser.yy" 5737 #line 734 "parser.yy" 6008 5738 { 6009 StatementNode *sw = new StatementNode ( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) );5739 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 6010 5740 // The semantics of the declaration list is changed to include associated initialization, which is performed 6011 5741 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 6017 5747 break; 6018 5748 6019 case 15 7:6020 6021 /* Line 1806 of yacc.c */ 6022 #line 7 29"parser.yy"6023 { (yyval.sn) = new StatementNode ( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }6024 break; 6025 6026 case 15 8:6027 6028 /* Line 1806 of yacc.c */ 6029 #line 7 31"parser.yy"5749 case 153: 5750 5751 /* Line 1806 of yacc.c */ 5752 #line 745 "parser.yy" 5753 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5754 break; 5755 5756 case 154: 5757 5758 /* Line 1806 of yacc.c */ 5759 #line 747 "parser.yy" 6030 5760 { 6031 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); 5761 //StatementNode *sw = new StatementNode( StatementNode::Switch, $3, $8 ); 5762 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 6032 5763 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_link( sw )) ) : sw; 6033 5764 } 6034 5765 break; 6035 5766 5767 case 155: 5768 5769 /* Line 1806 of yacc.c */ 5770 #line 758 "parser.yy" 5771 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5772 break; 5773 5774 case 156: 5775 5776 /* Line 1806 of yacc.c */ 5777 #line 760 "parser.yy" 5778 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5779 break; 5780 5781 case 158: 5782 5783 /* Line 1806 of yacc.c */ 5784 #line 765 "parser.yy" 5785 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 5786 break; 5787 6036 5788 case 159: 6037 5789 6038 5790 /* Line 1806 of yacc.c */ 6039 #line 7 41"parser.yy"6040 { (yyval. en) = (yyvsp[(1) - (1)].en); }5791 #line 767 "parser.yy" 5792 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 6041 5793 break; 6042 5794 … … 6044 5796 6045 5797 /* Line 1806 of yacc.c */ 6046 #line 7 43"parser.yy"6047 { (yyval. en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) )); }6048 break; 6049 6050 case 16 2:6051 6052 /* Line 1806 of yacc.c */ 6053 #line 7 48"parser.yy"6054 { (yyval.sn) = new StatementNode( StatementNode:: Case, (yyvsp[(1) - (1)].en), 0); }5798 #line 771 "parser.yy" 5799 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5800 break; 5801 5802 case 161: 5803 5804 /* Line 1806 of yacc.c */ 5805 #line 772 "parser.yy" 5806 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 6055 5807 break; 6056 5808 … … 6058 5810 6059 5811 /* Line 1806 of yacc.c */ 6060 #line 7 50"parser.yy"6061 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) )); }5812 #line 778 "parser.yy" 5813 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 6062 5814 break; 6063 5815 … … 6065 5817 6066 5818 /* Line 1806 of yacc.c */ 6067 #line 7 54"parser.yy"6068 { (yyval.sn) = (yyvsp[( 2) - (3)].sn); }5819 #line 782 "parser.yy" 5820 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6069 5821 break; 6070 5822 … … 6072 5824 6073 5825 /* Line 1806 of yacc.c */ 6074 #line 7 55"parser.yy"6075 { (yyval.sn) = new StatementNode( StatementNode::Default ); }5826 #line 787 "parser.yy" 5827 { (yyval.sn) = 0; } 6076 5828 break; 6077 5829 … … 6079 5831 6080 5832 /* Line 1806 of yacc.c */ 6081 #line 7 61"parser.yy"6082 { (yyval.sn) = ( StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }5833 #line 793 "parser.yy" 5834 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6083 5835 break; 6084 5836 … … 6086 5838 6087 5839 /* Line 1806 of yacc.c */ 6088 #line 7 65 "parser.yy"6089 { (yyval.sn) = ( yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); }5840 #line 795 "parser.yy" 5841 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 6090 5842 break; 6091 5843 … … 6093 5845 6094 5846 /* Line 1806 of yacc.c */ 6095 #line 770 "parser.yy"5847 #line 800 "parser.yy" 6096 5848 { (yyval.sn) = 0; } 6097 5849 break; … … 6100 5852 6101 5853 /* Line 1806 of yacc.c */ 6102 #line 776 "parser.yy"6103 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn)) ); }5854 #line 806 "parser.yy" 5855 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6104 5856 break; 6105 5857 … … 6107 5859 6108 5860 /* Line 1806 of yacc.c */ 6109 #line 778 "parser.yy"6110 { (yyval.sn) = ( StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode((yyvsp[(3) - (3)].sn) ) ) ) ); }5861 #line 808 "parser.yy" 5862 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 6111 5863 break; 6112 5864 … … 6114 5866 6115 5867 /* Line 1806 of yacc.c */ 6116 #line 783 "parser.yy" 5868 #line 810 "parser.yy" 5869 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5870 break; 5871 5872 case 174: 5873 5874 /* Line 1806 of yacc.c */ 5875 #line 812 "parser.yy" 5876 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5877 break; 5878 5879 case 175: 5880 5881 /* Line 1806 of yacc.c */ 5882 #line 817 "parser.yy" 5883 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 5884 break; 5885 5886 case 177: 5887 5888 /* Line 1806 of yacc.c */ 5889 #line 823 "parser.yy" 6117 5890 { (yyval.sn) = 0; } 6118 5891 break; 6119 5892 6120 case 175:6121 6122 /* Line 1806 of yacc.c */6123 #line 789 "parser.yy"6124 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }6125 break;6126 6127 case 176:6128 6129 /* Line 1806 of yacc.c */6130 #line 791 "parser.yy"6131 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); }6132 break;6133 6134 case 177:6135 6136 /* Line 1806 of yacc.c */6137 #line 793 "parser.yy"6138 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }6139 break;6140 6141 5893 case 178: 6142 5894 6143 5895 /* Line 1806 of yacc.c */ 6144 #line 795 "parser.yy"6145 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }5896 #line 825 "parser.yy" 5897 { (yyval.sn) = 0; } 6146 5898 break; 6147 5899 … … 6149 5901 6150 5902 /* Line 1806 of yacc.c */ 6151 #line 800 "parser.yy" 5903 #line 830 "parser.yy" 5904 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5905 break; 5906 5907 case 180: 5908 5909 /* Line 1806 of yacc.c */ 5910 #line 832 "parser.yy" 5911 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5912 break; 5913 5914 case 181: 5915 5916 /* Line 1806 of yacc.c */ 5917 #line 834 "parser.yy" 5918 { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5919 break; 5920 5921 case 182: 5922 5923 /* Line 1806 of yacc.c */ 5924 #line 839 "parser.yy" 5925 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5926 break; 5927 5928 case 183: 5929 5930 /* Line 1806 of yacc.c */ 5931 #line 841 "parser.yy" 5932 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5933 break; 5934 5935 case 184: 5936 5937 /* Line 1806 of yacc.c */ 5938 #line 846 "parser.yy" 5939 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 5940 break; 5941 5942 case 185: 5943 5944 /* Line 1806 of yacc.c */ 5945 #line 850 "parser.yy" 5946 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 5947 break; 5948 5949 case 186: 5950 5951 /* Line 1806 of yacc.c */ 5952 #line 853 "parser.yy" 5953 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 5954 break; 5955 5956 case 187: 5957 5958 /* Line 1806 of yacc.c */ 5959 #line 857 "parser.yy" 5960 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 5961 break; 5962 5963 case 188: 5964 5965 /* Line 1806 of yacc.c */ 5966 #line 860 "parser.yy" 6152 5967 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6153 5968 break; 6154 5969 6155 case 181:6156 6157 /* Line 1806 of yacc.c */6158 #line 806 "parser.yy"6159 { (yyval.sn) = 0; }6160 break;6161 6162 case 182:6163 6164 /* Line 1806 of yacc.c */6165 #line 808 "parser.yy"6166 { (yyval.sn) = 0; }6167 break;6168 6169 case 183:6170 6171 /* Line 1806 of yacc.c */6172 #line 813 "parser.yy"6173 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }6174 break;6175 6176 case 184:6177 6178 /* Line 1806 of yacc.c */6179 #line 815 "parser.yy"6180 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }6181 break;6182 6183 case 185:6184 6185 /* Line 1806 of yacc.c */6186 #line 817 "parser.yy"6187 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }6188 break;6189 6190 case 186:6191 6192 /* Line 1806 of yacc.c */6193 #line 822 "parser.yy"6194 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }6195 break;6196 6197 case 187:6198 6199 /* Line 1806 of yacc.c */6200 #line 824 "parser.yy"6201 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }6202 break;6203 6204 case 188:6205 6206 /* Line 1806 of yacc.c */6207 #line 829 "parser.yy"6208 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }6209 break;6210 6211 5970 case 189: 6212 5971 6213 5972 /* Line 1806 of yacc.c */ 6214 #line 8 33"parser.yy"6215 { (yyval.sn) = new StatementNode( StatementNode:: Goto, (yyvsp[(3) - (4)].en) ); }5973 #line 864 "parser.yy" 5974 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6216 5975 break; 6217 5976 … … 6219 5978 6220 5979 /* Line 1806 of yacc.c */ 6221 #line 8 36 "parser.yy"6222 { (yyval.sn) = new StatementNode( StatementNode:: Continue); }5980 #line 866 "parser.yy" 5981 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6223 5982 break; 6224 5983 … … 6226 5985 6227 5986 /* Line 1806 of yacc.c */ 6228 #line 8 40"parser.yy"6229 { (yyval.sn) = new StatementNode( StatementNode:: Continue, (yyvsp[(2) - (3)].tok)); }5987 #line 868 "parser.yy" 5988 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6230 5989 break; 6231 5990 … … 6233 5992 6234 5993 /* Line 1806 of yacc.c */ 6235 #line 8 43"parser.yy"6236 { (yyval.sn) = new StatementNode( StatementNode:: Break); }5994 #line 872 "parser.yy" 5995 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6237 5996 break; 6238 5997 … … 6240 5999 6241 6000 /* Line 1806 of yacc.c */ 6242 #line 8 47"parser.yy"6243 { (yyval.sn) = new StatementNode( StatementNode:: Break, (yyvsp[(2) - (3)].tok)); }6001 #line 874 "parser.yy" 6002 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6244 6003 break; 6245 6004 … … 6247 6006 6248 6007 /* Line 1806 of yacc.c */ 6249 #line 8 49"parser.yy"6250 { (yyval.sn) = new StatementNode( StatementNode:: Return, (yyvsp[(2) - (3)].en), 0); }6008 #line 881 "parser.yy" 6009 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6251 6010 break; 6252 6011 … … 6254 6013 6255 6014 /* Line 1806 of yacc.c */ 6256 #line 8 51"parser.yy"6257 { (yyval.sn) = new StatementNode( StatementNode::T hrow, (yyvsp[(2) - (3)].en), 0); }6015 #line 883 "parser.yy" 6016 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6258 6017 break; 6259 6018 … … 6261 6020 6262 6021 /* Line 1806 of yacc.c */ 6263 #line 855 "parser.yy" 6264 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6265 break; 6266 6267 case 197: 6268 6269 /* Line 1806 of yacc.c */ 6270 #line 857 "parser.yy" 6271 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6272 break; 6273 6274 case 198: 6275 6276 /* Line 1806 of yacc.c */ 6277 #line 864 "parser.yy" 6278 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6279 break; 6280 6281 case 199: 6282 6283 /* Line 1806 of yacc.c */ 6284 #line 866 "parser.yy" 6285 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6286 break; 6287 6288 case 200: 6289 6290 /* Line 1806 of yacc.c */ 6291 #line 868 "parser.yy" 6022 #line 885 "parser.yy" 6292 6023 { 6293 6024 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6296 6027 break; 6297 6028 6029 case 198: 6030 6031 /* Line 1806 of yacc.c */ 6032 #line 896 "parser.yy" 6033 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6034 break; 6035 6036 case 199: 6037 6038 /* Line 1806 of yacc.c */ 6039 #line 898 "parser.yy" 6040 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6041 break; 6042 6043 case 200: 6044 6045 /* Line 1806 of yacc.c */ 6046 #line 900 "parser.yy" 6047 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6048 break; 6049 6050 case 201: 6051 6052 /* Line 1806 of yacc.c */ 6053 #line 902 "parser.yy" 6054 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6055 break; 6056 6298 6057 case 202: 6299 6058 6300 6059 /* Line 1806 of yacc.c */ 6301 #line 879"parser.yy"6302 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true); }6060 #line 907 "parser.yy" 6061 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6303 6062 break; 6304 6063 … … 6306 6065 6307 6066 /* Line 1806 of yacc.c */ 6308 #line 881"parser.yy"6309 { (yyval.pn) = (yyvsp[(1) - ( 6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true) ); }6067 #line 909 "parser.yy" 6068 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6310 6069 break; 6311 6070 … … 6313 6072 6314 6073 /* Line 1806 of yacc.c */ 6315 #line 883"parser.yy"6316 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true); }6074 #line 911 "parser.yy" 6075 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6317 6076 break; 6318 6077 … … 6320 6079 6321 6080 /* Line 1806 of yacc.c */ 6322 #line 885"parser.yy"6323 { (yyval.pn) = (yyvsp[(1) - ( 6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true) ); }6081 #line 913 "parser.yy" 6082 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6324 6083 break; 6325 6084 … … 6327 6086 6328 6087 /* Line 1806 of yacc.c */ 6329 #line 890 "parser.yy" 6330 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6331 break; 6332 6333 case 207: 6334 6335 /* Line 1806 of yacc.c */ 6336 #line 892 "parser.yy" 6337 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6338 break; 6339 6340 case 208: 6341 6342 /* Line 1806 of yacc.c */ 6343 #line 894 "parser.yy" 6344 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6345 break; 6346 6347 case 209: 6348 6349 /* Line 1806 of yacc.c */ 6350 #line 896 "parser.yy" 6351 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6352 break; 6353 6354 case 210: 6355 6356 /* Line 1806 of yacc.c */ 6357 #line 901 "parser.yy" 6088 #line 918 "parser.yy" 6358 6089 { 6359 6090 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6362 6093 break; 6363 6094 6364 case 2 12:6365 6366 /* Line 1806 of yacc.c */ 6367 #line 9 15"parser.yy"6095 case 208: 6096 6097 /* Line 1806 of yacc.c */ 6098 #line 932 "parser.yy" 6368 6099 { 6369 6100 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6372 6103 break; 6373 6104 6374 case 2 13:6375 6376 /* Line 1806 of yacc.c */ 6377 #line 9 20"parser.yy"6105 case 209: 6106 6107 /* Line 1806 of yacc.c */ 6108 #line 937 "parser.yy" 6378 6109 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6379 6110 break; 6380 6111 6381 case 21 4:6382 6383 /* Line 1806 of yacc.c */ 6384 #line 9 22"parser.yy"6112 case 210: 6113 6114 /* Line 1806 of yacc.c */ 6115 #line 939 "parser.yy" 6385 6116 { 6386 6117 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6389 6120 break; 6390 6121 6122 case 212: 6123 6124 /* Line 1806 of yacc.c */ 6125 #line 948 "parser.yy" 6126 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6127 break; 6128 6129 case 213: 6130 6131 /* Line 1806 of yacc.c */ 6132 #line 950 "parser.yy" 6133 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6134 break; 6135 6136 case 214: 6137 6138 /* Line 1806 of yacc.c */ 6139 #line 952 "parser.yy" 6140 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6141 break; 6142 6143 case 215: 6144 6145 /* Line 1806 of yacc.c */ 6146 #line 954 "parser.yy" 6147 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ); } 6148 break; 6149 6391 6150 case 216: 6392 6151 6393 6152 /* Line 1806 of yacc.c */ 6394 #line 9 31"parser.yy"6395 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - ( 6)].flag), (yyvsp[(4) - (6)].constant), 0); }6153 #line 956 "parser.yy" 6154 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); } 6396 6155 break; 6397 6156 … … 6399 6158 6400 6159 /* Line 1806 of yacc.c */ 6401 #line 9 33"parser.yy"6402 { (yyval. sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }6160 #line 961 "parser.yy" 6161 { (yyval.flag) = false; } 6403 6162 break; 6404 6163 … … 6406 6165 6407 6166 /* Line 1806 of yacc.c */ 6408 #line 9 35"parser.yy"6409 { (yyval. sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }6167 #line 963 "parser.yy" 6168 { (yyval.flag) = true; } 6410 6169 break; 6411 6170 … … 6413 6172 6414 6173 /* Line 1806 of yacc.c */ 6415 #line 937 "parser.yy" 6416 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6417 break; 6418 6419 case 220: 6420 6421 /* Line 1806 of yacc.c */ 6422 #line 939 "parser.yy" 6423 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6424 break; 6425 6426 case 221: 6427 6428 /* Line 1806 of yacc.c */ 6429 #line 944 "parser.yy" 6430 { (yyval.flag) = false; } 6174 #line 968 "parser.yy" 6175 { (yyval.en) = 0; } 6431 6176 break; 6432 6177 … … 6434 6179 6435 6180 /* Line 1806 of yacc.c */ 6436 #line 9 46"parser.yy"6437 { (yyval. flag) = true; }6181 #line 975 "parser.yy" 6182 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6438 6183 break; 6439 6184 … … 6441 6186 6442 6187 /* Line 1806 of yacc.c */ 6443 #line 951 "parser.yy" 6188 #line 980 "parser.yy" 6189 { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6190 break; 6191 6192 case 224: 6193 6194 /* Line 1806 of yacc.c */ 6195 #line 982 "parser.yy" 6196 { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6197 break; 6198 6199 case 225: 6200 6201 /* Line 1806 of yacc.c */ 6202 #line 987 "parser.yy" 6444 6203 { (yyval.en) = 0; } 6445 6204 break; … … 6448 6207 6449 6208 /* Line 1806 of yacc.c */ 6450 #line 9 58"parser.yy"6451 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }6209 #line 989 "parser.yy" 6210 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6452 6211 break; 6453 6212 … … 6455 6214 6456 6215 /* Line 1806 of yacc.c */ 6457 #line 9 63"parser.yy"6458 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }6216 #line 991 "parser.yy" 6217 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6459 6218 break; 6460 6219 … … 6462 6221 6463 6222 /* Line 1806 of yacc.c */ 6464 #line 9 65"parser.yy"6465 { (yyval. en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }6223 #line 996 "parser.yy" 6224 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6466 6225 break; 6467 6226 … … 6469 6228 6470 6229 /* Line 1806 of yacc.c */ 6471 #line 9 70"parser.yy"6472 { (yyval. constant) = 0; }6230 #line 998 "parser.yy" 6231 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6473 6232 break; 6474 6233 … … 6476 6235 6477 6236 /* Line 1806 of yacc.c */ 6478 #line 972 "parser.yy" 6479 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6480 break; 6481 6482 case 231: 6483 6484 /* Line 1806 of yacc.c */ 6485 #line 974 "parser.yy" 6486 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6487 break; 6488 6489 case 232: 6490 6491 /* Line 1806 of yacc.c */ 6492 #line 979 "parser.yy" 6493 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6237 #line 1005 "parser.yy" 6238 { (yyval.decl) = 0; } 6494 6239 break; 6495 6240 … … 6497 6242 6498 6243 /* Line 1806 of yacc.c */ 6499 #line 981"parser.yy"6500 { (yyval. label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }6244 #line 1012 "parser.yy" 6245 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6501 6246 break; 6502 6247 … … 6504 6249 6505 6250 /* Line 1806 of yacc.c */ 6506 #line 988"parser.yy"6251 #line 1017 "parser.yy" 6507 6252 { (yyval.decl) = 0; } 6508 6253 break; … … 6511 6256 6512 6257 /* Line 1806 of yacc.c */ 6513 #line 995"parser.yy"6258 #line 1024 "parser.yy" 6514 6259 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6515 6260 break; 6516 6261 6517 case 238: 6518 6519 /* Line 1806 of yacc.c */ 6520 #line 1000 "parser.yy" 6521 { (yyval.decl) = 0; } 6522 break; 6523 6524 case 241: 6525 6526 /* Line 1806 of yacc.c */ 6527 #line 1007 "parser.yy" 6528 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6529 break; 6530 6531 case 246: 6532 6533 /* Line 1806 of yacc.c */ 6534 #line 1021 "parser.yy" 6262 case 242: 6263 6264 /* Line 1806 of yacc.c */ 6265 #line 1038 "parser.yy" 6535 6266 {} 6536 6267 break; 6537 6268 6538 case 24 7:6539 6540 /* Line 1806 of yacc.c */ 6541 #line 10 22"parser.yy"6269 case 243: 6270 6271 /* Line 1806 of yacc.c */ 6272 #line 1039 "parser.yy" 6542 6273 {} 6543 6274 break; 6544 6275 6545 case 25 5:6546 6547 /* Line 1806 of yacc.c */ 6548 #line 10 51"parser.yy"6276 case 251: 6277 6278 /* Line 1806 of yacc.c */ 6279 #line 1068 "parser.yy" 6549 6280 { 6550 6281 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6553 6284 break; 6554 6285 6555 case 25 6:6556 6557 /* Line 1806 of yacc.c */ 6558 #line 10 58"parser.yy"6286 case 252: 6287 6288 /* Line 1806 of yacc.c */ 6289 #line 1075 "parser.yy" 6559 6290 { 6560 6291 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6563 6294 break; 6564 6295 6565 case 25 7:6566 6567 /* Line 1806 of yacc.c */ 6568 #line 10 63"parser.yy"6296 case 253: 6297 6298 /* Line 1806 of yacc.c */ 6299 #line 1080 "parser.yy" 6569 6300 { 6570 6301 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6573 6304 break; 6574 6305 6575 case 25 8:6576 6577 /* Line 1806 of yacc.c */ 6578 #line 10 73"parser.yy"6306 case 254: 6307 6308 /* Line 1806 of yacc.c */ 6309 #line 1090 "parser.yy" 6579 6310 { 6580 6311 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6583 6314 break; 6584 6315 6585 case 25 9:6586 6587 /* Line 1806 of yacc.c */ 6588 #line 10 78"parser.yy"6316 case 255: 6317 6318 /* Line 1806 of yacc.c */ 6319 #line 1095 "parser.yy" 6589 6320 { 6590 6321 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6593 6324 break; 6594 6325 6595 case 2 60:6596 6597 /* Line 1806 of yacc.c */ 6598 #line 1 083"parser.yy"6326 case 256: 6327 6328 /* Line 1806 of yacc.c */ 6329 #line 1100 "parser.yy" 6599 6330 { 6600 6331 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6603 6334 break; 6604 6335 6605 case 2 61:6606 6607 /* Line 1806 of yacc.c */ 6608 #line 1 091"parser.yy"6336 case 257: 6337 6338 /* Line 1806 of yacc.c */ 6339 #line 1108 "parser.yy" 6609 6340 { 6610 6341 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6613 6344 break; 6614 6345 6615 case 2 62:6616 6617 /* Line 1806 of yacc.c */ 6618 #line 1 096"parser.yy"6346 case 258: 6347 6348 /* Line 1806 of yacc.c */ 6349 #line 1113 "parser.yy" 6619 6350 { 6620 6351 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6623 6354 break; 6624 6355 6625 case 2 63:6626 6627 /* Line 1806 of yacc.c */ 6628 #line 11 01"parser.yy"6356 case 259: 6357 6358 /* Line 1806 of yacc.c */ 6359 #line 1118 "parser.yy" 6629 6360 { 6630 6361 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6633 6364 break; 6634 6365 6635 case 26 4:6636 6637 /* Line 1806 of yacc.c */ 6638 #line 11 06"parser.yy"6366 case 260: 6367 6368 /* Line 1806 of yacc.c */ 6369 #line 1123 "parser.yy" 6639 6370 { 6640 6371 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6643 6374 break; 6644 6375 6645 case 26 5:6646 6647 /* Line 1806 of yacc.c */ 6648 #line 11 11"parser.yy"6376 case 261: 6377 6378 /* Line 1806 of yacc.c */ 6379 #line 1128 "parser.yy" 6649 6380 { 6650 6381 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6653 6384 break; 6654 6385 6655 case 26 6:6656 6657 /* Line 1806 of yacc.c */ 6658 #line 11 19"parser.yy"6386 case 262: 6387 6388 /* Line 1806 of yacc.c */ 6389 #line 1136 "parser.yy" 6659 6390 { 6660 6391 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6662 6393 break; 6663 6394 6664 case 26 7:6665 6666 /* Line 1806 of yacc.c */ 6667 #line 11 42"parser.yy"6395 case 263: 6396 6397 /* Line 1806 of yacc.c */ 6398 #line 1159 "parser.yy" 6668 6399 { 6669 6400 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6671 6402 break; 6672 6403 6673 case 26 8:6674 6675 /* Line 1806 of yacc.c */ 6676 #line 11 46"parser.yy"6404 case 264: 6405 6406 /* Line 1806 of yacc.c */ 6407 #line 1163 "parser.yy" 6677 6408 { 6678 6409 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6680 6411 break; 6681 6412 6682 case 26 9:6683 6684 /* Line 1806 of yacc.c */ 6685 #line 11 53"parser.yy"6413 case 265: 6414 6415 /* Line 1806 of yacc.c */ 6416 #line 1170 "parser.yy" 6686 6417 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6687 6418 break; 6688 6419 6689 case 2 70:6690 6691 /* Line 1806 of yacc.c */ 6692 #line 11 57"parser.yy"6420 case 266: 6421 6422 /* Line 1806 of yacc.c */ 6423 #line 1174 "parser.yy" 6693 6424 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6694 6425 break; 6695 6426 6696 case 2 71:6697 6698 /* Line 1806 of yacc.c */ 6699 #line 11 62"parser.yy"6427 case 267: 6428 6429 /* Line 1806 of yacc.c */ 6430 #line 1179 "parser.yy" 6700 6431 { 6701 6432 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6704 6435 break; 6705 6436 6706 case 2 72:6707 6708 /* Line 1806 of yacc.c */ 6709 #line 11 67"parser.yy"6437 case 268: 6438 6439 /* Line 1806 of yacc.c */ 6440 #line 1184 "parser.yy" 6710 6441 { 6711 6442 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6714 6445 break; 6715 6446 6716 case 2 73:6717 6718 /* Line 1806 of yacc.c */ 6719 #line 11 72"parser.yy"6447 case 269: 6448 6449 /* Line 1806 of yacc.c */ 6450 #line 1189 "parser.yy" 6720 6451 { 6721 6452 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6724 6455 break; 6725 6456 6726 case 27 4:6727 6728 /* Line 1806 of yacc.c */ 6729 #line 1 183"parser.yy"6457 case 270: 6458 6459 /* Line 1806 of yacc.c */ 6460 #line 1200 "parser.yy" 6730 6461 { 6731 6462 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6734 6465 break; 6735 6466 6736 case 27 5:6737 6738 /* Line 1806 of yacc.c */ 6739 #line 1 188"parser.yy"6467 case 271: 6468 6469 /* Line 1806 of yacc.c */ 6470 #line 1205 "parser.yy" 6740 6471 { 6741 6472 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6744 6475 break; 6745 6476 6746 case 27 6:6747 6748 /* Line 1806 of yacc.c */ 6749 #line 1 193"parser.yy"6477 case 272: 6478 6479 /* Line 1806 of yacc.c */ 6480 #line 1210 "parser.yy" 6750 6481 { 6751 6482 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6754 6485 break; 6755 6486 6756 case 27 7:6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1 198"parser.yy"6487 case 273: 6488 6489 /* Line 1806 of yacc.c */ 6490 #line 1215 "parser.yy" 6760 6491 { 6761 6492 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6764 6495 break; 6765 6496 6766 case 27 8:6767 6768 /* Line 1806 of yacc.c */ 6769 #line 12 03"parser.yy"6497 case 274: 6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1220 "parser.yy" 6770 6501 { 6771 6502 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6774 6505 break; 6775 6506 6776 case 27 9:6777 6778 /* Line 1806 of yacc.c */ 6779 #line 12 12"parser.yy"6507 case 275: 6508 6509 /* Line 1806 of yacc.c */ 6510 #line 1229 "parser.yy" 6780 6511 { 6781 6512 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6784 6515 break; 6785 6516 6786 case 2 80:6787 6788 /* Line 1806 of yacc.c */ 6789 #line 12 17"parser.yy"6517 case 276: 6518 6519 /* Line 1806 of yacc.c */ 6520 #line 1234 "parser.yy" 6790 6521 { 6791 6522 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6794 6525 break; 6795 6526 6796 case 28 5:6797 6798 /* Line 1806 of yacc.c */ 6799 #line 12 34"parser.yy"6527 case 281: 6528 6529 /* Line 1806 of yacc.c */ 6530 #line 1251 "parser.yy" 6800 6531 { 6801 6532 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6804 6535 break; 6805 6536 6806 case 28 6:6807 6808 /* Line 1806 of yacc.c */ 6809 #line 12 39"parser.yy"6537 case 282: 6538 6539 /* Line 1806 of yacc.c */ 6540 #line 1256 "parser.yy" 6810 6541 { 6811 6542 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6814 6545 break; 6815 6546 6816 case 29 5:6817 6818 /* Line 1806 of yacc.c */ 6819 #line 12 61"parser.yy"6547 case 291: 6548 6549 /* Line 1806 of yacc.c */ 6550 #line 1278 "parser.yy" 6820 6551 { (yyval.decl) = 0; } 6821 6552 break; 6822 6553 6554 case 294: 6555 6556 /* Line 1806 of yacc.c */ 6557 #line 1290 "parser.yy" 6558 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6559 break; 6560 6561 case 297: 6562 6563 /* Line 1806 of yacc.c */ 6564 #line 1301 "parser.yy" 6565 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6566 break; 6567 6823 6568 case 298: 6824 6569 6825 6570 /* Line 1806 of yacc.c */ 6826 #line 1273 "parser.yy" 6827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6571 #line 1303 "parser.yy" 6572 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6573 break; 6574 6575 case 299: 6576 6577 /* Line 1806 of yacc.c */ 6578 #line 1305 "parser.yy" 6579 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6580 break; 6581 6582 case 300: 6583 6584 /* Line 1806 of yacc.c */ 6585 #line 1307 "parser.yy" 6586 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6828 6587 break; 6829 6588 … … 6831 6590 6832 6591 /* Line 1806 of yacc.c */ 6833 #line 1 284"parser.yy"6834 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode:: Const); }6592 #line 1309 "parser.yy" 6593 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6835 6594 break; 6836 6595 … … 6838 6597 6839 6598 /* Line 1806 of yacc.c */ 6840 #line 1286 "parser.yy" 6841 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6842 break; 6843 6844 case 303: 6845 6846 /* Line 1806 of yacc.c */ 6847 #line 1288 "parser.yy" 6848 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6849 break; 6850 6851 case 304: 6852 6853 /* Line 1806 of yacc.c */ 6854 #line 1290 "parser.yy" 6855 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6856 break; 6857 6858 case 305: 6859 6860 /* Line 1806 of yacc.c */ 6861 #line 1292 "parser.yy" 6862 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6863 break; 6864 6865 case 306: 6866 6867 /* Line 1806 of yacc.c */ 6868 #line 1294 "parser.yy" 6599 #line 1311 "parser.yy" 6869 6600 { 6870 6601 typedefTable.enterScope(); … … 6872 6603 break; 6873 6604 6874 case 30 7:6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1 298"parser.yy"6605 case 303: 6606 6607 /* Line 1806 of yacc.c */ 6608 #line 1315 "parser.yy" 6878 6609 { 6879 6610 typedefTable.leaveScope(); … … 6882 6613 break; 6883 6614 6884 case 30 9:6885 6886 /* Line 1806 of yacc.c */ 6887 #line 13 07"parser.yy"6615 case 305: 6616 6617 /* Line 1806 of yacc.c */ 6618 #line 1324 "parser.yy" 6888 6619 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6889 6620 break; 6890 6621 6622 case 306: 6623 6624 /* Line 1806 of yacc.c */ 6625 #line 1326 "parser.yy" 6626 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6627 break; 6628 6629 case 308: 6630 6631 /* Line 1806 of yacc.c */ 6632 #line 1337 "parser.yy" 6633 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6634 break; 6635 6891 6636 case 310: 6892 6637 6893 6638 /* Line 1806 of yacc.c */ 6894 #line 1309 "parser.yy" 6639 #line 1346 "parser.yy" 6640 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6641 break; 6642 6643 case 311: 6644 6645 /* Line 1806 of yacc.c */ 6646 #line 1348 "parser.yy" 6647 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6648 break; 6649 6650 case 312: 6651 6652 /* Line 1806 of yacc.c */ 6653 #line 1350 "parser.yy" 6654 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6655 break; 6656 6657 case 313: 6658 6659 /* Line 1806 of yacc.c */ 6660 #line 1352 "parser.yy" 6661 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6662 break; 6663 6664 case 314: 6665 6666 /* Line 1806 of yacc.c */ 6667 #line 1354 "parser.yy" 6668 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6669 break; 6670 6671 case 315: 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1356 "parser.yy" 6675 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6676 break; 6677 6678 case 316: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1358 "parser.yy" 6682 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6683 break; 6684 6685 case 317: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1360 "parser.yy" 6689 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6690 break; 6691 6692 case 318: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1365 "parser.yy" 6696 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6697 break; 6698 6699 case 319: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1367 "parser.yy" 6703 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6704 break; 6705 6706 case 320: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1369 "parser.yy" 6710 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6711 break; 6712 6713 case 321: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1371 "parser.yy" 6717 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6718 break; 6719 6720 case 322: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1373 "parser.yy" 6724 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6725 break; 6726 6727 case 323: 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1375 "parser.yy" 6731 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6732 break; 6733 6734 case 324: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1377 "parser.yy" 6738 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6739 break; 6740 6741 case 325: 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1379 "parser.yy" 6745 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6746 break; 6747 6748 case 326: 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1381 "parser.yy" 6752 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6753 break; 6754 6755 case 327: 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1383 "parser.yy" 6759 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6760 break; 6761 6762 case 328: 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1385 "parser.yy" 6766 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6767 break; 6768 6769 case 329: 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1387 "parser.yy" 6773 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6774 break; 6775 6776 case 330: 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1389 "parser.yy" 6780 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6781 break; 6782 6783 case 332: 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1396 "parser.yy" 6787 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6788 break; 6789 6790 case 333: 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1398 "parser.yy" 6794 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6795 break; 6796 6797 case 334: 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1400 "parser.yy" 6895 6801 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6896 6802 break; 6897 6803 6898 case 312: 6899 6900 /* Line 1806 of yacc.c */ 6901 #line 1320 "parser.yy" 6804 case 335: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1402 "parser.yy" 6808 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6809 break; 6810 6811 case 337: 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1408 "parser.yy" 6815 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6816 break; 6817 6818 case 339: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1415 "parser.yy" 6822 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6823 break; 6824 6825 case 340: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1417 "parser.yy" 6902 6829 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6903 6830 break; 6904 6831 6905 case 314: 6906 6907 /* Line 1806 of yacc.c */ 6908 #line 1329 "parser.yy" 6909 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6910 break; 6911 6912 case 315: 6913 6914 /* Line 1806 of yacc.c */ 6915 #line 1331 "parser.yy" 6916 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6917 break; 6918 6919 case 316: 6920 6921 /* Line 1806 of yacc.c */ 6922 #line 1333 "parser.yy" 6923 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6924 break; 6925 6926 case 317: 6927 6928 /* Line 1806 of yacc.c */ 6929 #line 1335 "parser.yy" 6930 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6931 break; 6932 6933 case 318: 6934 6935 /* Line 1806 of yacc.c */ 6936 #line 1337 "parser.yy" 6937 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6938 break; 6939 6940 case 319: 6941 6942 /* Line 1806 of yacc.c */ 6943 #line 1339 "parser.yy" 6944 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6945 break; 6946 6947 case 320: 6948 6949 /* Line 1806 of yacc.c */ 6950 #line 1341 "parser.yy" 6951 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6952 break; 6953 6954 case 321: 6955 6956 /* Line 1806 of yacc.c */ 6957 #line 1343 "parser.yy" 6958 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6959 break; 6960 6961 case 322: 6962 6963 /* Line 1806 of yacc.c */ 6964 #line 1348 "parser.yy" 6965 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6966 break; 6967 6968 case 323: 6969 6970 /* Line 1806 of yacc.c */ 6971 #line 1350 "parser.yy" 6972 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6973 break; 6974 6975 case 324: 6976 6977 /* Line 1806 of yacc.c */ 6978 #line 1352 "parser.yy" 6979 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6980 break; 6981 6982 case 325: 6983 6984 /* Line 1806 of yacc.c */ 6985 #line 1354 "parser.yy" 6986 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6987 break; 6988 6989 case 326: 6990 6991 /* Line 1806 of yacc.c */ 6992 #line 1356 "parser.yy" 6993 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6994 break; 6995 6996 case 327: 6997 6998 /* Line 1806 of yacc.c */ 6999 #line 1358 "parser.yy" 7000 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 7001 break; 7002 7003 case 328: 7004 7005 /* Line 1806 of yacc.c */ 7006 #line 1360 "parser.yy" 7007 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 7008 break; 7009 7010 case 329: 7011 7012 /* Line 1806 of yacc.c */ 7013 #line 1362 "parser.yy" 7014 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 7015 break; 7016 7017 case 330: 7018 7019 /* Line 1806 of yacc.c */ 7020 #line 1364 "parser.yy" 7021 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 7022 break; 7023 7024 case 331: 7025 7026 /* Line 1806 of yacc.c */ 7027 #line 1366 "parser.yy" 7028 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 7029 break; 7030 7031 case 332: 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1368 "parser.yy" 7035 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 7036 break; 7037 7038 case 333: 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1370 "parser.yy" 7042 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 7043 break; 7044 7045 case 334: 7046 7047 /* Line 1806 of yacc.c */ 7048 #line 1372 "parser.yy" 7049 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 7050 break; 7051 7052 case 336: 7053 7054 /* Line 1806 of yacc.c */ 7055 #line 1379 "parser.yy" 6832 case 341: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1419 "parser.yy" 6836 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6837 break; 6838 6839 case 342: 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1424 "parser.yy" 6843 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6844 break; 6845 6846 case 343: 6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1426 "parser.yy" 6850 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6851 break; 6852 6853 case 344: 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1428 "parser.yy" 6857 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6858 break; 6859 6860 case 345: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1430 "parser.yy" 6864 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6865 break; 6866 6867 case 347: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1436 "parser.yy" 7056 6871 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7057 6872 break; 7058 6873 7059 case 3 37:7060 7061 /* Line 1806 of yacc.c */ 7062 #line 1 381"parser.yy"6874 case 348: 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1438 "parser.yy" 7063 6878 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7064 6879 break; 7065 6880 7066 case 3 38:7067 7068 /* Line 1806 of yacc.c */ 7069 #line 1 383"parser.yy"6881 case 349: 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1440 "parser.yy" 7070 6885 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7071 6886 break; 7072 6887 7073 case 339: 7074 7075 /* Line 1806 of yacc.c */ 7076 #line 1385 "parser.yy" 7077 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 7078 break; 7079 7080 case 341: 7081 7082 /* Line 1806 of yacc.c */ 7083 #line 1391 "parser.yy" 7084 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7085 break; 7086 7087 case 343: 7088 7089 /* Line 1806 of yacc.c */ 7090 #line 1398 "parser.yy" 6888 case 351: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1446 "parser.yy" 7091 6892 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7092 6893 break; 7093 6894 7094 case 3 44:7095 7096 /* Line 1806 of yacc.c */ 7097 #line 14 00"parser.yy"6895 case 352: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1448 "parser.yy" 7098 6899 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7099 6900 break; 7100 6901 7101 case 345: 7102 7103 /* Line 1806 of yacc.c */ 7104 #line 1402 "parser.yy" 7105 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 7106 break; 7107 7108 case 346: 7109 7110 /* Line 1806 of yacc.c */ 7111 #line 1407 "parser.yy" 7112 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 7113 break; 7114 7115 case 347: 7116 7117 /* Line 1806 of yacc.c */ 7118 #line 1409 "parser.yy" 7119 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 7120 break; 7121 7122 case 348: 7123 7124 /* Line 1806 of yacc.c */ 7125 #line 1411 "parser.yy" 7126 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 7127 break; 7128 7129 case 349: 7130 7131 /* Line 1806 of yacc.c */ 7132 #line 1413 "parser.yy" 7133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7134 break; 7135 7136 case 351: 7137 7138 /* Line 1806 of yacc.c */ 7139 #line 1419 "parser.yy" 6902 case 354: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1454 "parser.yy" 7140 6906 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7141 6907 break; 7142 6908 7143 case 35 2:7144 7145 /* Line 1806 of yacc.c */ 7146 #line 14 21"parser.yy"6909 case 355: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1456 "parser.yy" 7147 6913 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7148 6914 break; 7149 6915 7150 case 35 3:7151 7152 /* Line 1806 of yacc.c */ 7153 #line 14 23"parser.yy"6916 case 356: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1458 "parser.yy" 7154 6920 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7155 6921 break; 7156 6922 7157 case 355: 7158 7159 /* Line 1806 of yacc.c */ 7160 #line 1429 "parser.yy" 7161 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7162 break; 7163 7164 case 356: 7165 7166 /* Line 1806 of yacc.c */ 7167 #line 1431 "parser.yy" 6923 case 357: 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1463 "parser.yy" 6927 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6928 break; 6929 6930 case 358: 6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1465 "parser.yy" 6934 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6935 break; 6936 6937 case 359: 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1467 "parser.yy" 7168 6941 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7169 6942 break; 7170 6943 7171 case 358:7172 7173 /* Line 1806 of yacc.c */7174 #line 1437 "parser.yy"7175 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7176 break;7177 7178 case 359:7179 7180 /* Line 1806 of yacc.c */7181 #line 1439 "parser.yy"7182 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7183 break;7184 7185 case 360:7186 7187 /* Line 1806 of yacc.c */7188 #line 1441 "parser.yy"7189 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7190 break;7191 7192 case 361:7193 7194 /* Line 1806 of yacc.c */7195 #line 1446 "parser.yy"7196 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }7197 break;7198 7199 6944 case 362: 7200 6945 7201 6946 /* Line 1806 of yacc.c */ 7202 #line 14 48"parser.yy"7203 { (yyval.decl) = DeclarationNode::new FromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl)); }6947 #line 1477 "parser.yy" 6948 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7204 6949 break; 7205 6950 … … 7207 6952 7208 6953 /* Line 1806 of yacc.c */ 7209 #line 1450 "parser.yy" 7210 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7211 break; 7212 7213 case 366: 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1460 "parser.yy" 7217 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7218 break; 7219 7220 case 367: 7221 7222 /* Line 1806 of yacc.c */ 7223 #line 1462 "parser.yy" 6954 #line 1479 "parser.yy" 7224 6955 { 7225 6956 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7228 6959 break; 7229 6960 6961 case 364: 6962 6963 /* Line 1806 of yacc.c */ 6964 #line 1484 "parser.yy" 6965 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6966 break; 6967 6968 case 365: 6969 6970 /* Line 1806 of yacc.c */ 6971 #line 1486 "parser.yy" 6972 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6973 break; 6974 6975 case 366: 6976 6977 /* Line 1806 of yacc.c */ 6978 #line 1488 "parser.yy" 6979 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6980 break; 6981 6982 case 367: 6983 6984 /* Line 1806 of yacc.c */ 6985 #line 1490 "parser.yy" 6986 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6987 break; 6988 7230 6989 case 368: 7231 6990 7232 6991 /* Line 1806 of yacc.c */ 7233 #line 14 67"parser.yy"7234 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }6992 #line 1495 "parser.yy" 6993 { (yyval.aggKey) = DeclarationNode::Struct; } 7235 6994 break; 7236 6995 … … 7238 6997 7239 6998 /* Line 1806 of yacc.c */ 7240 #line 14 69"parser.yy"7241 { (yyval. decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }6999 #line 1497 "parser.yy" 7000 { (yyval.aggKey) = DeclarationNode::Union; } 7242 7001 break; 7243 7002 … … 7245 7004 7246 7005 /* Line 1806 of yacc.c */ 7247 #line 1 471"parser.yy"7248 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }7006 #line 1502 "parser.yy" 7007 { (yyval.decl) = 0; } 7249 7008 break; 7250 7009 … … 7252 7011 7253 7012 /* Line 1806 of yacc.c */ 7254 #line 1473 "parser.yy" 7255 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7256 break; 7257 7258 case 372: 7259 7260 /* Line 1806 of yacc.c */ 7261 #line 1478 "parser.yy" 7262 { (yyval.aggKey) = DeclarationNode::Struct; } 7013 #line 1504 "parser.yy" 7014 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7263 7015 break; 7264 7016 … … 7266 7018 7267 7019 /* Line 1806 of yacc.c */ 7268 #line 1480 "parser.yy" 7269 { (yyval.aggKey) = DeclarationNode::Union; } 7270 break; 7271 7272 case 374: 7273 7274 /* Line 1806 of yacc.c */ 7275 #line 1485 "parser.yy" 7276 { (yyval.decl) = 0; } 7020 #line 1510 "parser.yy" 7021 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7277 7022 break; 7278 7023 … … 7280 7025 7281 7026 /* Line 1806 of yacc.c */ 7282 #line 1487 "parser.yy" 7283 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7284 break; 7285 7286 case 377: 7287 7288 /* Line 1806 of yacc.c */ 7289 #line 1493 "parser.yy" 7290 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7291 break; 7292 7293 case 379: 7294 7295 /* Line 1806 of yacc.c */ 7296 #line 1496 "parser.yy" 7027 #line 1513 "parser.yy" 7297 7028 { // mark all fields in list 7298 7029 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7302 7033 break; 7303 7034 7035 case 377: 7036 7037 /* Line 1806 of yacc.c */ 7038 #line 1523 "parser.yy" 7039 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7040 break; 7041 7042 case 378: 7043 7044 /* Line 1806 of yacc.c */ 7045 #line 1525 "parser.yy" 7046 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7047 break; 7048 7049 case 379: 7050 7051 /* Line 1806 of yacc.c */ 7052 #line 1527 "parser.yy" 7053 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7054 break; 7055 7056 case 380: 7057 7058 /* Line 1806 of yacc.c */ 7059 #line 1532 "parser.yy" 7060 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7061 break; 7062 7304 7063 case 381: 7305 7064 7306 7065 /* Line 1806 of yacc.c */ 7307 #line 15 06"parser.yy"7308 { (yyval.decl) = (yyvsp[(1) - ( 2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }7066 #line 1534 "parser.yy" 7067 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7309 7068 break; 7310 7069 … … 7312 7071 7313 7072 /* Line 1806 of yacc.c */ 7314 #line 15 08"parser.yy"7315 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) );}7073 #line 1539 "parser.yy" 7074 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7316 7075 break; 7317 7076 … … 7319 7078 7320 7079 /* Line 1806 of yacc.c */ 7321 #line 15 10"parser.yy"7322 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0) ); }7080 #line 1541 "parser.yy" 7081 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7323 7082 break; 7324 7083 … … 7326 7085 7327 7086 /* Line 1806 of yacc.c */ 7328 #line 15 15"parser.yy"7329 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7087 #line 1544 "parser.yy" 7088 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7330 7089 break; 7331 7090 … … 7333 7092 7334 7093 /* Line 1806 of yacc.c */ 7335 #line 1517 "parser.yy" 7336 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7337 break; 7338 7339 case 386: 7340 7341 /* Line 1806 of yacc.c */ 7342 #line 1522 "parser.yy" 7343 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7094 #line 1547 "parser.yy" 7095 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7344 7096 break; 7345 7097 … … 7347 7099 7348 7100 /* Line 1806 of yacc.c */ 7349 #line 15 24"parser.yy"7350 { (yyval. decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }7101 #line 1553 "parser.yy" 7102 { (yyval.en) = 0; } 7351 7103 break; 7352 7104 … … 7354 7106 7355 7107 /* Line 1806 of yacc.c */ 7356 #line 15 27"parser.yy"7357 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en)); }7108 #line 1555 "parser.yy" 7109 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7358 7110 break; 7359 7111 … … 7361 7113 7362 7114 /* Line 1806 of yacc.c */ 7363 #line 15 30 "parser.yy"7364 { (yyval. decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en)); }7115 #line 1560 "parser.yy" 7116 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7365 7117 break; 7366 7118 … … 7368 7120 7369 7121 /* Line 1806 of yacc.c */ 7370 #line 15 36"parser.yy"7371 { (yyval. en) = 0; }7122 #line 1569 "parser.yy" 7123 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7372 7124 break; 7373 7125 … … 7375 7127 7376 7128 /* Line 1806 of yacc.c */ 7377 #line 1538 "parser.yy" 7378 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7379 break; 7380 7381 case 393: 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1543 "parser.yy" 7385 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7386 break; 7387 7388 case 395: 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1552 "parser.yy" 7392 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7393 break; 7394 7395 case 396: 7396 7397 /* Line 1806 of yacc.c */ 7398 #line 1554 "parser.yy" 7129 #line 1571 "parser.yy" 7399 7130 { 7400 7131 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7403 7134 break; 7404 7135 7136 case 393: 7137 7138 /* Line 1806 of yacc.c */ 7139 #line 1576 "parser.yy" 7140 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7141 break; 7142 7143 case 394: 7144 7145 /* Line 1806 of yacc.c */ 7146 #line 1578 "parser.yy" 7147 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7148 break; 7149 7150 case 395: 7151 7152 /* Line 1806 of yacc.c */ 7153 #line 1583 "parser.yy" 7154 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7155 break; 7156 7157 case 396: 7158 7159 /* Line 1806 of yacc.c */ 7160 #line 1585 "parser.yy" 7161 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7162 break; 7163 7405 7164 case 397: 7406 7165 7407 7166 /* Line 1806 of yacc.c */ 7408 #line 15 59"parser.yy"7409 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }7167 #line 1590 "parser.yy" 7168 { (yyval.en) = 0; } 7410 7169 break; 7411 7170 … … 7413 7172 7414 7173 /* Line 1806 of yacc.c */ 7415 #line 15 61"parser.yy"7416 { (yyval. decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl)); }7174 #line 1592 "parser.yy" 7175 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7417 7176 break; 7418 7177 … … 7420 7179 7421 7180 /* Line 1806 of yacc.c */ 7422 #line 1566 "parser.yy" 7423 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7424 break; 7425 7426 case 400: 7427 7428 /* Line 1806 of yacc.c */ 7429 #line 1568 "parser.yy" 7430 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7431 break; 7432 7433 case 401: 7434 7435 /* Line 1806 of yacc.c */ 7436 #line 1573 "parser.yy" 7437 { (yyval.en) = 0; } 7438 break; 7439 7440 case 402: 7441 7442 /* Line 1806 of yacc.c */ 7443 #line 1575 "parser.yy" 7444 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7181 #line 1599 "parser.yy" 7182 { (yyval.decl) = 0; } 7445 7183 break; 7446 7184 … … 7448 7186 7449 7187 /* Line 1806 of yacc.c */ 7450 #line 1582 "parser.yy" 7188 #line 1607 "parser.yy" 7189 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7190 break; 7191 7192 case 404: 7193 7194 /* Line 1806 of yacc.c */ 7195 #line 1609 "parser.yy" 7196 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7197 break; 7198 7199 case 405: 7200 7201 /* Line 1806 of yacc.c */ 7202 #line 1611 "parser.yy" 7203 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7204 break; 7205 7206 case 407: 7207 7208 /* Line 1806 of yacc.c */ 7209 #line 1619 "parser.yy" 7210 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7211 break; 7212 7213 case 408: 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1621 "parser.yy" 7217 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7218 break; 7219 7220 case 409: 7221 7222 /* Line 1806 of yacc.c */ 7223 #line 1623 "parser.yy" 7224 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7225 break; 7226 7227 case 411: 7228 7229 /* Line 1806 of yacc.c */ 7230 #line 1629 "parser.yy" 7231 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7232 break; 7233 7234 case 412: 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1634 "parser.yy" 7451 7238 { (yyval.decl) = 0; } 7452 7239 break; 7453 7240 7454 case 407: 7455 7456 /* Line 1806 of yacc.c */ 7457 #line 1590 "parser.yy" 7241 case 415: 7242 7243 /* Line 1806 of yacc.c */ 7244 #line 1641 "parser.yy" 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7246 break; 7247 7248 case 418: 7249 7250 /* Line 1806 of yacc.c */ 7251 #line 1648 "parser.yy" 7458 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7459 7253 break; 7460 7254 7461 case 408: 7462 7463 /* Line 1806 of yacc.c */ 7464 #line 1592 "parser.yy" 7465 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7466 break; 7467 7468 case 409: 7469 7470 /* Line 1806 of yacc.c */ 7471 #line 1594 "parser.yy" 7472 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7473 break; 7474 7475 case 411: 7476 7477 /* Line 1806 of yacc.c */ 7478 #line 1602 "parser.yy" 7255 case 419: 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1650 "parser.yy" 7479 7259 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7480 7260 break; 7481 7261 7482 case 412: 7483 7484 /* Line 1806 of yacc.c */ 7485 #line 1604 "parser.yy" 7486 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7487 break; 7488 7489 case 413: 7490 7491 /* Line 1806 of yacc.c */ 7492 #line 1606 "parser.yy" 7493 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7494 break; 7495 7496 case 415: 7497 7498 /* Line 1806 of yacc.c */ 7499 #line 1612 "parser.yy" 7500 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7501 break; 7502 7503 case 416: 7504 7505 /* Line 1806 of yacc.c */ 7506 #line 1617 "parser.yy" 7507 { (yyval.decl) = 0; } 7508 break; 7509 7510 case 419: 7511 7512 /* Line 1806 of yacc.c */ 7513 #line 1624 "parser.yy" 7514 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7262 case 421: 7263 7264 /* Line 1806 of yacc.c */ 7265 #line 1659 "parser.yy" 7266 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7515 7267 break; 7516 7268 … … 7518 7270 7519 7271 /* Line 1806 of yacc.c */ 7520 #line 16 31"parser.yy"7521 { (yyval.decl) = (yyvsp[(1) - ( 5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7272 #line 1662 "parser.yy" 7273 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7522 7274 break; 7523 7275 … … 7525 7277 7526 7278 /* Line 1806 of yacc.c */ 7527 #line 1633 "parser.yy" 7528 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7529 break; 7530 7531 case 425: 7532 7533 /* Line 1806 of yacc.c */ 7534 #line 1642 "parser.yy" 7535 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7536 break; 7537 7538 case 426: 7539 7540 /* Line 1806 of yacc.c */ 7541 #line 1645 "parser.yy" 7542 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7543 break; 7544 7545 case 427: 7546 7547 /* Line 1806 of yacc.c */ 7548 #line 1647 "parser.yy" 7279 #line 1664 "parser.yy" 7549 7280 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7550 7281 break; 7551 7282 7552 case 4 32:7553 7554 /* Line 1806 of yacc.c */ 7555 #line 16 57"parser.yy"7283 case 428: 7284 7285 /* Line 1806 of yacc.c */ 7286 #line 1674 "parser.yy" 7556 7287 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7557 7288 break; 7558 7289 7559 case 43 4:7560 7561 /* Line 1806 of yacc.c */ 7562 #line 16 63"parser.yy"7290 case 430: 7291 7292 /* Line 1806 of yacc.c */ 7293 #line 1680 "parser.yy" 7563 7294 { 7564 7295 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7567 7298 break; 7568 7299 7569 case 43 5:7570 7571 /* Line 1806 of yacc.c */ 7572 #line 16 68"parser.yy"7300 case 431: 7301 7302 /* Line 1806 of yacc.c */ 7303 #line 1685 "parser.yy" 7573 7304 { 7574 7305 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7577 7308 break; 7578 7309 7579 case 43 7:7580 7581 /* Line 1806 of yacc.c */ 7582 #line 16 77"parser.yy"7310 case 433: 7311 7312 /* Line 1806 of yacc.c */ 7313 #line 1694 "parser.yy" 7583 7314 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7584 7315 break; 7585 7316 7586 case 43 8:7587 7588 /* Line 1806 of yacc.c */ 7589 #line 1 686"parser.yy"7317 case 434: 7318 7319 /* Line 1806 of yacc.c */ 7320 #line 1703 "parser.yy" 7590 7321 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7591 7322 break; 7592 7323 7593 case 43 9:7594 7595 /* Line 1806 of yacc.c */ 7596 #line 1 688"parser.yy"7324 case 435: 7325 7326 /* Line 1806 of yacc.c */ 7327 #line 1705 "parser.yy" 7597 7328 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7598 7329 break; 7599 7330 7331 case 447: 7332 7333 /* Line 1806 of yacc.c */ 7334 #line 1730 "parser.yy" 7335 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7336 break; 7337 7600 7338 case 451: 7601 7339 7602 7340 /* Line 1806 of yacc.c */ 7603 #line 17 13"parser.yy"7341 #line 1738 "parser.yy" 7604 7342 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7605 7343 break; 7606 7344 7345 case 452: 7346 7347 /* Line 1806 of yacc.c */ 7348 #line 1743 "parser.yy" 7349 { (yyval.in) = 0; } 7350 break; 7351 7352 case 453: 7353 7354 /* Line 1806 of yacc.c */ 7355 #line 1745 "parser.yy" 7356 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7357 break; 7358 7359 case 454: 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1747 "parser.yy" 7363 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7364 break; 7365 7607 7366 case 455: 7608 7367 7609 7368 /* Line 1806 of yacc.c */ 7610 #line 17 21 "parser.yy"7611 { (yyval. decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7369 #line 1751 "parser.yy" 7370 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7612 7371 break; 7613 7372 … … 7615 7374 7616 7375 /* Line 1806 of yacc.c */ 7617 #line 1726 "parser.yy" 7376 #line 1752 "parser.yy" 7377 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7378 break; 7379 7380 case 457: 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1757 "parser.yy" 7618 7384 { (yyval.in) = 0; } 7619 7385 break; 7620 7386 7621 case 457:7622 7623 /* Line 1806 of yacc.c */7624 #line 1728 "parser.yy"7625 { (yyval.in) = (yyvsp[(2) - (2)].in); }7626 break;7627 7628 case 458:7629 7630 /* Line 1806 of yacc.c */7631 #line 1730 "parser.yy"7632 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }7633 break;7634 7635 7387 case 459: 7636 7388 7637 7389 /* Line 1806 of yacc.c */ 7638 #line 17 34"parser.yy"7639 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }7390 #line 1759 "parser.yy" 7391 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7640 7392 break; 7641 7393 … … 7643 7395 7644 7396 /* Line 1806 of yacc.c */ 7645 #line 17 35"parser.yy"7646 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true); }7397 #line 1760 "parser.yy" 7398 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7647 7399 break; 7648 7400 … … 7650 7402 7651 7403 /* Line 1806 of yacc.c */ 7652 #line 17 40"parser.yy"7653 { (yyval.in) = 0; }7404 #line 1762 "parser.yy" 7405 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7654 7406 break; 7655 7407 … … 7657 7409 7658 7410 /* Line 1806 of yacc.c */ 7659 #line 1742 "parser.yy" 7660 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7661 break; 7662 7663 case 464: 7664 7665 /* Line 1806 of yacc.c */ 7666 #line 1743 "parser.yy" 7667 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7411 #line 1778 "parser.yy" 7412 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7668 7413 break; 7669 7414 … … 7671 7416 7672 7417 /* Line 1806 of yacc.c */ 7673 #line 1745 "parser.yy" 7674 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7418 #line 1784 "parser.yy" 7419 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) ) ); } 7420 break; 7421 7422 case 466: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1790 "parser.yy" 7426 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7675 7427 break; 7676 7428 … … 7678 7430 7679 7431 /* Line 1806 of yacc.c */ 7680 #line 1761 "parser.yy" 7681 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7432 #line 1793 "parser.yy" 7433 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7434 break; 7435 7436 case 468: 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1795 "parser.yy" 7440 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7682 7441 break; 7683 7442 … … 7685 7444 7686 7445 /* Line 1806 of yacc.c */ 7687 #line 17 67 "parser.yy"7688 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }7446 #line 1797 "parser.yy" 7447 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7689 7448 break; 7690 7449 … … 7692 7451 7693 7452 /* Line 1806 of yacc.c */ 7694 #line 1775 "parser.yy" 7695 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7696 break; 7697 7698 case 471: 7699 7700 /* Line 1806 of yacc.c */ 7701 #line 1777 "parser.yy" 7702 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7453 #line 1799 "parser.yy" 7454 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7703 7455 break; 7704 7456 … … 7706 7458 7707 7459 /* Line 1806 of yacc.c */ 7708 #line 1 780"parser.yy"7709 { (yyval. en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true); }7460 #line 1823 "parser.yy" 7461 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7710 7462 break; 7711 7463 … … 7713 7465 7714 7466 /* Line 1806 of yacc.c */ 7715 #line 1 782"parser.yy"7716 { (yyval. en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true); }7467 #line 1825 "parser.yy" 7468 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7717 7469 break; 7718 7470 … … 7720 7472 7721 7473 /* Line 1806 of yacc.c */ 7722 #line 1 784"parser.yy"7723 { (yyval. en) = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true); }7724 break; 7725 7726 case 47 5:7727 7728 /* Line 1806 of yacc.c */ 7729 #line 1 786"parser.yy"7730 { (yyval. en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }7474 #line 1827 "parser.yy" 7475 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7476 break; 7477 7478 case 476: 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1833 "parser.yy" 7482 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7731 7483 break; 7732 7484 … … 7734 7486 7735 7487 /* Line 1806 of yacc.c */ 7736 #line 18 10"parser.yy"7737 { (yyval.decl) = (yyvsp[( 2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7488 #line 1835 "parser.yy" 7489 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7738 7490 break; 7739 7491 … … 7741 7493 7742 7494 /* Line 1806 of yacc.c */ 7743 #line 18 12"parser.yy"7744 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7745 break; 7746 7747 case 4 79:7748 7749 /* Line 1806 of yacc.c */ 7750 #line 18 14"parser.yy"7751 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7495 #line 1840 "parser.yy" 7496 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7497 break; 7498 7499 case 480: 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1846 "parser.yy" 7503 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7752 7504 break; 7753 7505 … … 7755 7507 7756 7508 /* Line 1806 of yacc.c */ 7757 #line 18 20"parser.yy"7758 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl)); }7509 #line 1851 "parser.yy" 7510 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7759 7511 break; 7760 7512 … … 7762 7514 7763 7515 /* Line 1806 of yacc.c */ 7764 #line 18 22"parser.yy"7765 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7766 break; 7767 7768 case 48 3:7769 7770 /* Line 1806 of yacc.c */ 7771 #line 18 27"parser.yy"7772 { (yyval. decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }7516 #line 1853 "parser.yy" 7517 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7518 break; 7519 7520 case 484: 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1859 "parser.yy" 7524 { (yyval.tclass) = DeclarationNode::Type; } 7773 7525 break; 7774 7526 … … 7776 7528 7777 7529 /* Line 1806 of yacc.c */ 7778 #line 18 33"parser.yy"7779 { (yyval. decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }7530 #line 1861 "parser.yy" 7531 { (yyval.tclass) = DeclarationNode::Ftype; } 7780 7532 break; 7781 7533 … … 7783 7535 7784 7536 /* Line 1806 of yacc.c */ 7785 #line 18 38"parser.yy"7786 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }7537 #line 1863 "parser.yy" 7538 { (yyval.tclass) = DeclarationNode::Dtype; } 7787 7539 break; 7788 7540 … … 7790 7542 7791 7543 /* Line 1806 of yacc.c */ 7792 #line 1840 "parser.yy" 7793 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7544 #line 1868 "parser.yy" 7545 { (yyval.decl) = 0; } 7546 break; 7547 7548 case 488: 7549 7550 /* Line 1806 of yacc.c */ 7551 #line 1870 "parser.yy" 7552 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7794 7553 break; 7795 7554 … … 7797 7556 7798 7557 /* Line 1806 of yacc.c */ 7799 #line 1846 "parser.yy" 7800 { (yyval.tclass) = DeclarationNode::Type; } 7801 break; 7802 7803 case 490: 7804 7805 /* Line 1806 of yacc.c */ 7806 #line 1848 "parser.yy" 7807 { (yyval.tclass) = DeclarationNode::Ftype; } 7808 break; 7809 7810 case 491: 7811 7812 /* Line 1806 of yacc.c */ 7813 #line 1850 "parser.yy" 7814 { (yyval.tclass) = DeclarationNode::Dtype; } 7815 break; 7816 7817 case 492: 7818 7819 /* Line 1806 of yacc.c */ 7820 #line 1855 "parser.yy" 7821 { (yyval.decl) = 0; } 7822 break; 7823 7824 case 493: 7825 7826 /* Line 1806 of yacc.c */ 7827 #line 1857 "parser.yy" 7828 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7829 break; 7830 7831 case 494: 7832 7833 /* Line 1806 of yacc.c */ 7834 #line 1862 "parser.yy" 7558 #line 1875 "parser.yy" 7835 7559 { 7836 7560 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7839 7563 break; 7840 7564 7565 case 490: 7566 7567 /* Line 1806 of yacc.c */ 7568 #line 1880 "parser.yy" 7569 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7570 break; 7571 7572 case 491: 7573 7574 /* Line 1806 of yacc.c */ 7575 #line 1882 "parser.yy" 7576 { (yyval.decl) = 0; } 7577 break; 7578 7579 case 492: 7580 7581 /* Line 1806 of yacc.c */ 7582 #line 1887 "parser.yy" 7583 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7584 break; 7585 7586 case 494: 7587 7588 /* Line 1806 of yacc.c */ 7589 #line 1890 "parser.yy" 7590 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7591 break; 7592 7841 7593 case 495: 7842 7594 7843 7595 /* Line 1806 of yacc.c */ 7844 #line 18 67"parser.yy"7845 { (yyval. decl) = (yyvsp[(4) - (5)].decl); }7596 #line 1892 "parser.yy" 7597 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7846 7598 break; 7847 7599 … … 7849 7601 7850 7602 /* Line 1806 of yacc.c */ 7851 #line 18 69"parser.yy"7852 { (yyval.decl) = 0; }7603 #line 1897 "parser.yy" 7604 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7853 7605 break; 7854 7606 … … 7856 7608 7857 7609 /* Line 1806 of yacc.c */ 7858 #line 1874 "parser.yy" 7859 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7610 #line 1899 "parser.yy" 7611 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7612 break; 7613 7614 case 498: 7615 7616 /* Line 1806 of yacc.c */ 7617 #line 1901 "parser.yy" 7618 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7860 7619 break; 7861 7620 … … 7863 7622 7864 7623 /* Line 1806 of yacc.c */ 7865 #line 1 877"parser.yy"7866 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }7624 #line 1906 "parser.yy" 7625 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7867 7626 break; 7868 7627 … … 7870 7629 7871 7630 /* Line 1806 of yacc.c */ 7872 #line 1 879"parser.yy"7873 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }7631 #line 1908 "parser.yy" 7632 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7874 7633 break; 7875 7634 … … 7877 7636 7878 7637 /* Line 1806 of yacc.c */ 7879 #line 1884 "parser.yy" 7880 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7881 break; 7882 7883 case 502: 7884 7885 /* Line 1806 of yacc.c */ 7886 #line 1886 "parser.yy" 7887 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7888 break; 7889 7890 case 503: 7891 7892 /* Line 1806 of yacc.c */ 7893 #line 1888 "parser.yy" 7894 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7895 break; 7896 7897 case 504: 7898 7899 /* Line 1806 of yacc.c */ 7900 #line 1893 "parser.yy" 7901 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7902 break; 7903 7904 case 505: 7905 7906 /* Line 1806 of yacc.c */ 7907 #line 1895 "parser.yy" 7908 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7909 break; 7910 7911 case 506: 7912 7913 /* Line 1806 of yacc.c */ 7914 #line 1900 "parser.yy" 7638 #line 1913 "parser.yy" 7915 7639 { 7916 7640 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7919 7643 break; 7920 7644 7921 case 50 7:7922 7923 /* Line 1806 of yacc.c */ 7924 #line 19 05"parser.yy"7645 case 502: 7646 7647 /* Line 1806 of yacc.c */ 7648 #line 1918 "parser.yy" 7925 7649 { 7926 7650 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7929 7653 break; 7930 7654 7931 case 50 8:7932 7933 /* Line 1806 of yacc.c */ 7934 #line 19 13"parser.yy"7655 case 503: 7656 7657 /* Line 1806 of yacc.c */ 7658 #line 1926 "parser.yy" 7935 7659 { 7936 7660 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7939 7663 break; 7940 7664 7941 case 50 9:7942 7943 /* Line 1806 of yacc.c */ 7944 #line 19 18"parser.yy"7665 case 504: 7666 7667 /* Line 1806 of yacc.c */ 7668 #line 1931 "parser.yy" 7945 7669 { 7946 7670 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7949 7673 break; 7950 7674 7951 case 5 10:7952 7953 /* Line 1806 of yacc.c */ 7954 #line 19 23"parser.yy"7675 case 505: 7676 7677 /* Line 1806 of yacc.c */ 7678 #line 1936 "parser.yy" 7955 7679 { 7956 7680 typedefTable.leaveTrait(); … … 7960 7684 break; 7961 7685 7962 case 5 12:7963 7964 /* Line 1806 of yacc.c */ 7965 #line 19 33"parser.yy"7686 case 507: 7687 7688 /* Line 1806 of yacc.c */ 7689 #line 1946 "parser.yy" 7966 7690 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7967 7691 break; 7968 7692 7969 case 51 5:7970 7971 /* Line 1806 of yacc.c */ 7972 #line 19 43"parser.yy"7693 case 510: 7694 7695 /* Line 1806 of yacc.c */ 7696 #line 1956 "parser.yy" 7973 7697 { 7974 7698 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7977 7701 break; 7978 7702 7979 case 51 6:7980 7981 /* Line 1806 of yacc.c */ 7982 #line 19 48"parser.yy"7703 case 511: 7704 7705 /* Line 1806 of yacc.c */ 7706 #line 1961 "parser.yy" 7983 7707 { 7984 7708 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7987 7711 break; 7988 7712 7989 case 51 7:7990 7991 /* Line 1806 of yacc.c */ 7992 #line 19 53"parser.yy"7713 case 512: 7714 7715 /* Line 1806 of yacc.c */ 7716 #line 1966 "parser.yy" 7993 7717 { 7994 7718 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7997 7721 break; 7998 7722 7999 case 51 8:8000 8001 /* Line 1806 of yacc.c */ 8002 #line 19 61"parser.yy"7723 case 513: 7724 7725 /* Line 1806 of yacc.c */ 7726 #line 1974 "parser.yy" 8003 7727 { 8004 7728 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8007 7731 break; 8008 7732 8009 case 51 9:8010 8011 /* Line 1806 of yacc.c */ 8012 #line 19 66"parser.yy"7733 case 514: 7734 7735 /* Line 1806 of yacc.c */ 7736 #line 1979 "parser.yy" 8013 7737 { 8014 7738 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8017 7741 break; 8018 7742 8019 case 5 20:8020 8021 /* Line 1806 of yacc.c */ 8022 #line 19 76"parser.yy"7743 case 515: 7744 7745 /* Line 1806 of yacc.c */ 7746 #line 1989 "parser.yy" 8023 7747 {} 8024 7748 break; 8025 7749 8026 case 5 21:8027 8028 /* Line 1806 of yacc.c */ 8029 #line 19 78"parser.yy"7750 case 516: 7751 7752 /* Line 1806 of yacc.c */ 7753 #line 1991 "parser.yy" 8030 7754 { 8031 7755 if ( theTree ) { … … 8037 7761 break; 8038 7762 7763 case 518: 7764 7765 /* Line 1806 of yacc.c */ 7766 #line 2003 "parser.yy" 7767 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7768 break; 7769 7770 case 519: 7771 7772 /* Line 1806 of yacc.c */ 7773 #line 2008 "parser.yy" 7774 { (yyval.decl) = 0; } 7775 break; 7776 8039 7777 case 523: 8040 7778 8041 7779 /* Line 1806 of yacc.c */ 8042 #line 1990"parser.yy"8043 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl);}7780 #line 2016 "parser.yy" 7781 {} 8044 7782 break; 8045 7783 … … 8047 7785 8048 7786 /* Line 1806 of yacc.c */ 8049 #line 1995 "parser.yy" 8050 { (yyval.decl) = 0; } 8051 break; 8052 8053 case 528: 8054 8055 /* Line 1806 of yacc.c */ 8056 #line 2003 "parser.yy" 8057 {} 8058 break; 8059 8060 case 529: 8061 8062 /* Line 1806 of yacc.c */ 8063 #line 2005 "parser.yy" 7787 #line 2018 "parser.yy" 8064 7788 { 8065 7789 linkageStack.push( linkage ); … … 8068 7792 break; 8069 7793 8070 case 5 30:8071 8072 /* Line 1806 of yacc.c */ 8073 #line 20 10"parser.yy"7794 case 525: 7795 7796 /* Line 1806 of yacc.c */ 7797 #line 2023 "parser.yy" 8074 7798 { 8075 7799 linkage = linkageStack.top(); … … 8079 7803 break; 8080 7804 8081 case 5 31:8082 8083 /* Line 1806 of yacc.c */ 8084 #line 20 16"parser.yy"7805 case 526: 7806 7807 /* Line 1806 of yacc.c */ 7808 #line 2029 "parser.yy" 8085 7809 { // mark all fields in list 8086 7810 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 8090 7814 break; 8091 7815 8092 case 5 33:8093 8094 /* Line 1806 of yacc.c */ 8095 #line 20 31"parser.yy"7816 case 528: 7817 7818 /* Line 1806 of yacc.c */ 7819 #line 2044 "parser.yy" 8096 7820 { 8097 7821 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8101 7825 break; 8102 7826 8103 case 5 34:8104 8105 /* Line 1806 of yacc.c */ 8106 #line 20 37"parser.yy"7827 case 529: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 2050 "parser.yy" 8107 7831 { 8108 7832 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8112 7836 break; 8113 7837 8114 case 53 5:8115 8116 /* Line 1806 of yacc.c */ 8117 #line 20 46"parser.yy"7838 case 530: 7839 7840 /* Line 1806 of yacc.c */ 7841 #line 2059 "parser.yy" 8118 7842 { 8119 7843 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8123 7847 break; 8124 7848 8125 case 53 6:8126 8127 /* Line 1806 of yacc.c */ 8128 #line 20 52"parser.yy"7849 case 531: 7850 7851 /* Line 1806 of yacc.c */ 7852 #line 2065 "parser.yy" 8129 7853 { 8130 7854 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8134 7858 break; 8135 7859 8136 case 53 7:8137 8138 /* Line 1806 of yacc.c */ 8139 #line 20 58"parser.yy"7860 case 532: 7861 7862 /* Line 1806 of yacc.c */ 7863 #line 2071 "parser.yy" 8140 7864 { 8141 7865 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8145 7869 break; 8146 7870 8147 case 53 8:8148 8149 /* Line 1806 of yacc.c */ 8150 #line 20 64"parser.yy"7871 case 533: 7872 7873 /* Line 1806 of yacc.c */ 7874 #line 2077 "parser.yy" 8151 7875 { 8152 7876 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8156 7880 break; 8157 7881 8158 case 53 9:8159 8160 /* Line 1806 of yacc.c */ 8161 #line 20 70"parser.yy"7882 case 534: 7883 7884 /* Line 1806 of yacc.c */ 7885 #line 2083 "parser.yy" 8162 7886 { 8163 7887 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8167 7891 break; 8168 7892 8169 case 5 40:8170 8171 /* Line 1806 of yacc.c */ 8172 #line 20 78"parser.yy"7893 case 535: 7894 7895 /* Line 1806 of yacc.c */ 7896 #line 2091 "parser.yy" 8173 7897 { 8174 7898 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8178 7902 break; 8179 7903 8180 case 5 41:8181 8182 /* Line 1806 of yacc.c */ 8183 #line 20 84"parser.yy"7904 case 536: 7905 7906 /* Line 1806 of yacc.c */ 7907 #line 2097 "parser.yy" 8184 7908 { 8185 7909 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8189 7913 break; 8190 7914 8191 case 5 42:8192 8193 /* Line 1806 of yacc.c */ 8194 #line 2 092"parser.yy"7915 case 537: 7916 7917 /* Line 1806 of yacc.c */ 7918 #line 2105 "parser.yy" 8195 7919 { 8196 7920 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8200 7924 break; 8201 7925 8202 case 5 43:8203 8204 /* Line 1806 of yacc.c */ 8205 #line 2 098"parser.yy"7926 case 538: 7927 7928 /* Line 1806 of yacc.c */ 7929 #line 2111 "parser.yy" 8206 7930 { 8207 7931 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8211 7935 break; 8212 7936 8213 case 547: 8214 8215 /* Line 1806 of yacc.c */ 8216 #line 2113 "parser.yy" 8217 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 8218 break; 8219 8220 case 550: 8221 8222 /* Line 1806 of yacc.c */ 8223 #line 2123 "parser.yy" 8224 { (yyval.decl) = 0; } 8225 break; 8226 8227 case 553: 8228 8229 /* Line 1806 of yacc.c */ 8230 #line 2130 "parser.yy" 8231 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8232 break; 8233 8234 case 554: 7937 case 542: 7938 7939 /* Line 1806 of yacc.c */ 7940 #line 2126 "parser.yy" 7941 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7942 break; 7943 7944 case 545: 8235 7945 8236 7946 /* Line 1806 of yacc.c */ … … 8239 7949 break; 8240 7950 8241 case 560: 8242 8243 /* Line 1806 of yacc.c */ 8244 #line 2151 "parser.yy" 7951 case 548: 7952 7953 /* Line 1806 of yacc.c */ 7954 #line 2143 "parser.yy" 7955 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7956 break; 7957 7958 case 549: 7959 7960 /* Line 1806 of yacc.c */ 7961 #line 2149 "parser.yy" 7962 { (yyval.decl) = 0; } 7963 break; 7964 7965 case 555: 7966 7967 /* Line 1806 of yacc.c */ 7968 #line 2164 "parser.yy" 8245 7969 {} 8246 7970 break; 8247 7971 7972 case 556: 7973 7974 /* Line 1806 of yacc.c */ 7975 #line 2165 "parser.yy" 7976 {} 7977 break; 7978 7979 case 557: 7980 7981 /* Line 1806 of yacc.c */ 7982 #line 2166 "parser.yy" 7983 {} 7984 break; 7985 7986 case 558: 7987 7988 /* Line 1806 of yacc.c */ 7989 #line 2167 "parser.yy" 7990 {} 7991 break; 7992 7993 case 559: 7994 7995 /* Line 1806 of yacc.c */ 7996 #line 2202 "parser.yy" 7997 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7998 break; 7999 8248 8000 case 561: 8249 8001 8250 8002 /* Line 1806 of yacc.c */ 8251 #line 2 152"parser.yy"8252 { }8003 #line 2205 "parser.yy" 8004 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8253 8005 break; 8254 8006 … … 8256 8008 8257 8009 /* Line 1806 of yacc.c */ 8258 #line 2 153"parser.yy"8259 { }8010 #line 2207 "parser.yy" 8011 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8260 8012 break; 8261 8013 … … 8263 8015 8264 8016 /* Line 1806 of yacc.c */ 8265 #line 2154 "parser.yy" 8266 {} 8267 break; 8268 8269 case 564: 8270 8271 /* Line 1806 of yacc.c */ 8272 #line 2189 "parser.yy" 8273 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8274 break; 8275 8276 case 566: 8277 8278 /* Line 1806 of yacc.c */ 8279 #line 2192 "parser.yy" 8280 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8281 break; 8282 8283 case 567: 8284 8285 /* Line 1806 of yacc.c */ 8286 #line 2194 "parser.yy" 8287 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8288 break; 8289 8290 case 568: 8291 8292 /* Line 1806 of yacc.c */ 8293 #line 2199 "parser.yy" 8017 #line 2212 "parser.yy" 8294 8018 { 8295 8019 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8298 8022 break; 8299 8023 8024 case 564: 8025 8026 /* Line 1806 of yacc.c */ 8027 #line 2217 "parser.yy" 8028 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8029 break; 8030 8031 case 565: 8032 8033 /* Line 1806 of yacc.c */ 8034 #line 2222 "parser.yy" 8035 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8036 break; 8037 8038 case 566: 8039 8040 /* Line 1806 of yacc.c */ 8041 #line 2224 "parser.yy" 8042 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8043 break; 8044 8045 case 567: 8046 8047 /* Line 1806 of yacc.c */ 8048 #line 2226 "parser.yy" 8049 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8050 break; 8051 8052 case 568: 8053 8054 /* Line 1806 of yacc.c */ 8055 #line 2231 "parser.yy" 8056 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8057 break; 8058 8300 8059 case 569: 8301 8060 8302 8061 /* Line 1806 of yacc.c */ 8303 #line 2204 "parser.yy" 8062 #line 2233 "parser.yy" 8063 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8064 break; 8065 8066 case 570: 8067 8068 /* Line 1806 of yacc.c */ 8069 #line 2235 "parser.yy" 8070 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8071 break; 8072 8073 case 571: 8074 8075 /* Line 1806 of yacc.c */ 8076 #line 2237 "parser.yy" 8304 8077 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8305 8078 break; 8306 8079 8307 case 570: 8308 8309 /* Line 1806 of yacc.c */ 8310 #line 2209 "parser.yy" 8080 case 572: 8081 8082 /* Line 1806 of yacc.c */ 8083 #line 2242 "parser.yy" 8084 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8085 break; 8086 8087 case 573: 8088 8089 /* Line 1806 of yacc.c */ 8090 #line 2244 "parser.yy" 8091 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8092 break; 8093 8094 case 574: 8095 8096 /* Line 1806 of yacc.c */ 8097 #line 2253 "parser.yy" 8098 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8099 break; 8100 8101 case 576: 8102 8103 /* Line 1806 of yacc.c */ 8104 #line 2256 "parser.yy" 8105 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8106 break; 8107 8108 case 577: 8109 8110 /* Line 1806 of yacc.c */ 8111 #line 2261 "parser.yy" 8112 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8113 break; 8114 8115 case 578: 8116 8117 /* Line 1806 of yacc.c */ 8118 #line 2263 "parser.yy" 8119 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8120 break; 8121 8122 case 579: 8123 8124 /* Line 1806 of yacc.c */ 8125 #line 2265 "parser.yy" 8126 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8127 break; 8128 8129 case 580: 8130 8131 /* Line 1806 of yacc.c */ 8132 #line 2270 "parser.yy" 8311 8133 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8312 8134 break; 8313 8135 8314 case 5 71:8315 8316 /* Line 1806 of yacc.c */ 8317 #line 22 11"parser.yy"8136 case 581: 8137 8138 /* Line 1806 of yacc.c */ 8139 #line 2272 "parser.yy" 8318 8140 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8319 8141 break; 8320 8142 8321 case 5 72:8322 8323 /* Line 1806 of yacc.c */ 8324 #line 22 13"parser.yy"8143 case 582: 8144 8145 /* Line 1806 of yacc.c */ 8146 #line 2274 "parser.yy" 8325 8147 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8326 8148 break; 8327 8149 8328 case 573: 8329 8330 /* Line 1806 of yacc.c */ 8331 #line 2218 "parser.yy" 8150 case 583: 8151 8152 /* Line 1806 of yacc.c */ 8153 #line 2279 "parser.yy" 8154 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8155 break; 8156 8157 case 584: 8158 8159 /* Line 1806 of yacc.c */ 8160 #line 2281 "parser.yy" 8161 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8162 break; 8163 8164 case 585: 8165 8166 /* Line 1806 of yacc.c */ 8167 #line 2283 "parser.yy" 8168 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8169 break; 8170 8171 case 589: 8172 8173 /* Line 1806 of yacc.c */ 8174 #line 2298 "parser.yy" 8175 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8176 break; 8177 8178 case 590: 8179 8180 /* Line 1806 of yacc.c */ 8181 #line 2300 "parser.yy" 8182 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8183 break; 8184 8185 case 591: 8186 8187 /* Line 1806 of yacc.c */ 8188 #line 2302 "parser.yy" 8189 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8190 break; 8191 8192 case 592: 8193 8194 /* Line 1806 of yacc.c */ 8195 #line 2307 "parser.yy" 8196 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8197 break; 8198 8199 case 593: 8200 8201 /* Line 1806 of yacc.c */ 8202 #line 2309 "parser.yy" 8203 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8204 break; 8205 8206 case 594: 8207 8208 /* Line 1806 of yacc.c */ 8209 #line 2311 "parser.yy" 8210 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8211 break; 8212 8213 case 595: 8214 8215 /* Line 1806 of yacc.c */ 8216 #line 2316 "parser.yy" 8217 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8218 break; 8219 8220 case 596: 8221 8222 /* Line 1806 of yacc.c */ 8223 #line 2318 "parser.yy" 8224 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8225 break; 8226 8227 case 597: 8228 8229 /* Line 1806 of yacc.c */ 8230 #line 2320 "parser.yy" 8231 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8232 break; 8233 8234 case 598: 8235 8236 /* Line 1806 of yacc.c */ 8237 #line 2335 "parser.yy" 8238 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8239 break; 8240 8241 case 600: 8242 8243 /* Line 1806 of yacc.c */ 8244 #line 2338 "parser.yy" 8245 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8246 break; 8247 8248 case 601: 8249 8250 /* Line 1806 of yacc.c */ 8251 #line 2340 "parser.yy" 8252 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8253 break; 8254 8255 case 603: 8256 8257 /* Line 1806 of yacc.c */ 8258 #line 2346 "parser.yy" 8259 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8260 break; 8261 8262 case 604: 8263 8264 /* Line 1806 of yacc.c */ 8265 #line 2351 "parser.yy" 8266 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8267 break; 8268 8269 case 605: 8270 8271 /* Line 1806 of yacc.c */ 8272 #line 2353 "parser.yy" 8273 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8274 break; 8275 8276 case 606: 8277 8278 /* Line 1806 of yacc.c */ 8279 #line 2355 "parser.yy" 8280 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8281 break; 8282 8283 case 607: 8284 8285 /* Line 1806 of yacc.c */ 8286 #line 2360 "parser.yy" 8332 8287 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8333 8288 break; 8334 8289 8335 case 574:8336 8337 /* Line 1806 of yacc.c */ 8338 #line 2 220"parser.yy"8290 case 608: 8291 8292 /* Line 1806 of yacc.c */ 8293 #line 2362 "parser.yy" 8339 8294 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8340 8295 break; 8341 8296 8342 case 575:8343 8344 /* Line 1806 of yacc.c */ 8345 #line 2 222"parser.yy"8297 case 609: 8298 8299 /* Line 1806 of yacc.c */ 8300 #line 2364 "parser.yy" 8346 8301 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8347 8302 break; 8348 8303 8349 case 576:8350 8351 /* Line 1806 of yacc.c */ 8352 #line 2 224"parser.yy"8304 case 610: 8305 8306 /* Line 1806 of yacc.c */ 8307 #line 2366 "parser.yy" 8353 8308 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8354 8309 break; 8355 8310 8356 case 577: 8357 8358 /* Line 1806 of yacc.c */ 8359 #line 2229 "parser.yy" 8311 case 611: 8312 8313 /* Line 1806 of yacc.c */ 8314 #line 2371 "parser.yy" 8315 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8316 break; 8317 8318 case 612: 8319 8320 /* Line 1806 of yacc.c */ 8321 #line 2373 "parser.yy" 8360 8322 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8361 8323 break; 8362 8324 8363 case 578:8364 8365 /* Line 1806 of yacc.c */ 8366 #line 2 231"parser.yy"8325 case 613: 8326 8327 /* Line 1806 of yacc.c */ 8328 #line 2375 "parser.yy" 8367 8329 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8368 8330 break; 8369 8331 8370 case 579:8371 8372 /* Line 1806 of yacc.c */ 8373 #line 2 240"parser.yy"8332 case 614: 8333 8334 /* Line 1806 of yacc.c */ 8335 #line 2385 "parser.yy" 8374 8336 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8375 8337 break; 8376 8338 8377 case 581:8378 8379 /* Line 1806 of yacc.c */ 8380 #line 2 243"parser.yy"8339 case 616: 8340 8341 /* Line 1806 of yacc.c */ 8342 #line 2388 "parser.yy" 8381 8343 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8382 8344 break; 8383 8345 8384 case 582: 8385 8386 /* Line 1806 of yacc.c */ 8387 #line 2248 "parser.yy" 8346 case 617: 8347 8348 /* Line 1806 of yacc.c */ 8349 #line 2390 "parser.yy" 8350 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8351 break; 8352 8353 case 618: 8354 8355 /* Line 1806 of yacc.c */ 8356 #line 2395 "parser.yy" 8357 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8358 break; 8359 8360 case 619: 8361 8362 /* Line 1806 of yacc.c */ 8363 #line 2397 "parser.yy" 8364 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8365 break; 8366 8367 case 620: 8368 8369 /* Line 1806 of yacc.c */ 8370 #line 2399 "parser.yy" 8371 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8372 break; 8373 8374 case 621: 8375 8376 /* Line 1806 of yacc.c */ 8377 #line 2404 "parser.yy" 8378 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8379 break; 8380 8381 case 622: 8382 8383 /* Line 1806 of yacc.c */ 8384 #line 2406 "parser.yy" 8385 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8386 break; 8387 8388 case 623: 8389 8390 /* Line 1806 of yacc.c */ 8391 #line 2408 "parser.yy" 8392 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8393 break; 8394 8395 case 624: 8396 8397 /* Line 1806 of yacc.c */ 8398 #line 2410 "parser.yy" 8399 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8400 break; 8401 8402 case 625: 8403 8404 /* Line 1806 of yacc.c */ 8405 #line 2415 "parser.yy" 8388 8406 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8389 8407 break; 8390 8408 8391 case 583:8392 8393 /* Line 1806 of yacc.c */ 8394 #line 2 250"parser.yy"8409 case 626: 8410 8411 /* Line 1806 of yacc.c */ 8412 #line 2417 "parser.yy" 8395 8413 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8396 8414 break; 8397 8415 8398 case 584:8399 8400 /* Line 1806 of yacc.c */ 8401 #line 2 252"parser.yy"8416 case 627: 8417 8418 /* Line 1806 of yacc.c */ 8419 #line 2419 "parser.yy" 8402 8420 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8403 8421 break; 8404 8422 8405 case 585: 8406 8407 /* Line 1806 of yacc.c */ 8408 #line 2257 "parser.yy" 8409 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8410 break; 8411 8412 case 586: 8413 8414 /* Line 1806 of yacc.c */ 8415 #line 2259 "parser.yy" 8416 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8417 break; 8418 8419 case 587: 8420 8421 /* Line 1806 of yacc.c */ 8422 #line 2261 "parser.yy" 8423 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8424 break; 8425 8426 case 588: 8427 8428 /* Line 1806 of yacc.c */ 8429 #line 2266 "parser.yy" 8430 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8431 break; 8432 8433 case 589: 8434 8435 /* Line 1806 of yacc.c */ 8436 #line 2268 "parser.yy" 8437 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8438 break; 8439 8440 case 590: 8441 8442 /* Line 1806 of yacc.c */ 8443 #line 2270 "parser.yy" 8444 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8445 break; 8446 8447 case 594: 8448 8449 /* Line 1806 of yacc.c */ 8450 #line 2285 "parser.yy" 8451 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8452 break; 8453 8454 case 595: 8455 8456 /* Line 1806 of yacc.c */ 8457 #line 2287 "parser.yy" 8458 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8459 break; 8460 8461 case 596: 8462 8463 /* Line 1806 of yacc.c */ 8464 #line 2289 "parser.yy" 8465 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8466 break; 8467 8468 case 597: 8469 8470 /* Line 1806 of yacc.c */ 8471 #line 2294 "parser.yy" 8472 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8473 break; 8474 8475 case 598: 8476 8477 /* Line 1806 of yacc.c */ 8478 #line 2296 "parser.yy" 8479 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8480 break; 8481 8482 case 599: 8483 8484 /* Line 1806 of yacc.c */ 8485 #line 2298 "parser.yy" 8486 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8487 break; 8488 8489 case 600: 8490 8491 /* Line 1806 of yacc.c */ 8492 #line 2303 "parser.yy" 8493 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8494 break; 8495 8496 case 601: 8497 8498 /* Line 1806 of yacc.c */ 8499 #line 2305 "parser.yy" 8500 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8501 break; 8502 8503 case 602: 8504 8505 /* Line 1806 of yacc.c */ 8506 #line 2307 "parser.yy" 8507 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8508 break; 8509 8510 case 603: 8511 8512 /* Line 1806 of yacc.c */ 8513 #line 2322 "parser.yy" 8423 case 628: 8424 8425 /* Line 1806 of yacc.c */ 8426 #line 2450 "parser.yy" 8514 8427 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8515 8428 break; 8516 8429 8517 case 6 05:8518 8519 /* Line 1806 of yacc.c */ 8520 #line 2 325"parser.yy"8430 case 630: 8431 8432 /* Line 1806 of yacc.c */ 8433 #line 2453 "parser.yy" 8521 8434 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8522 8435 break; 8523 8436 8524 case 6 06:8525 8526 /* Line 1806 of yacc.c */ 8527 #line 2 327"parser.yy"8437 case 631: 8438 8439 /* Line 1806 of yacc.c */ 8440 #line 2455 "parser.yy" 8528 8441 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8529 8442 break; 8530 8443 8531 case 608:8532 8533 /* Line 1806 of yacc.c */8534 #line 2333 "parser.yy"8535 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8536 break;8537 8538 case 609:8539 8540 /* Line 1806 of yacc.c */8541 #line 2338 "parser.yy"8542 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8543 break;8544 8545 case 610:8546 8547 /* Line 1806 of yacc.c */8548 #line 2340 "parser.yy"8549 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8550 break;8551 8552 case 611:8553 8554 /* Line 1806 of yacc.c */8555 #line 2342 "parser.yy"8556 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8557 break;8558 8559 case 612:8560 8561 /* Line 1806 of yacc.c */8562 #line 2347 "parser.yy"8563 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8564 break;8565 8566 case 613:8567 8568 /* Line 1806 of yacc.c */8569 #line 2349 "parser.yy"8570 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8571 break;8572 8573 case 614:8574 8575 /* Line 1806 of yacc.c */8576 #line 2351 "parser.yy"8577 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8578 break;8579 8580 case 615:8581 8582 /* Line 1806 of yacc.c */8583 #line 2353 "parser.yy"8584 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8585 break;8586 8587 case 616:8588 8589 /* Line 1806 of yacc.c */8590 #line 2358 "parser.yy"8591 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8592 break;8593 8594 case 617:8595 8596 /* Line 1806 of yacc.c */8597 #line 2360 "parser.yy"8598 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8599 break;8600 8601 case 618:8602 8603 /* Line 1806 of yacc.c */8604 #line 2362 "parser.yy"8605 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8606 break;8607 8608 case 619:8609 8610 /* Line 1806 of yacc.c */8611 #line 2372 "parser.yy"8612 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8613 break;8614 8615 case 621:8616 8617 /* Line 1806 of yacc.c */8618 #line 2375 "parser.yy"8619 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8620 break;8621 8622 case 622:8623 8624 /* Line 1806 of yacc.c */8625 #line 2377 "parser.yy"8626 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8627 break;8628 8629 case 623:8630 8631 /* Line 1806 of yacc.c */8632 #line 2382 "parser.yy"8633 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8634 break;8635 8636 case 624:8637 8638 /* Line 1806 of yacc.c */8639 #line 2384 "parser.yy"8640 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8641 break;8642 8643 case 625:8644 8645 /* Line 1806 of yacc.c */8646 #line 2386 "parser.yy"8647 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8648 break;8649 8650 case 626:8651 8652 /* Line 1806 of yacc.c */8653 #line 2391 "parser.yy"8654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8655 break;8656 8657 case 627:8658 8659 /* Line 1806 of yacc.c */8660 #line 2393 "parser.yy"8661 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8662 break;8663 8664 case 628:8665 8666 /* Line 1806 of yacc.c */8667 #line 2395 "parser.yy"8668 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8669 break;8670 8671 case 629:8672 8673 /* Line 1806 of yacc.c */8674 #line 2397 "parser.yy"8675 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8676 break;8677 8678 case 630:8679 8680 /* Line 1806 of yacc.c */8681 #line 2402 "parser.yy"8682 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8683 break;8684 8685 case 631:8686 8687 /* Line 1806 of yacc.c */8688 #line 2404 "parser.yy"8689 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8690 break;8691 8692 8444 case 632: 8693 8445 8694 8446 /* Line 1806 of yacc.c */ 8695 #line 2406 "parser.yy" 8696 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8697 break; 8698 8699 case 633: 8700 8701 /* Line 1806 of yacc.c */ 8702 #line 2437 "parser.yy" 8703 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8704 break; 8705 8706 case 635: 8707 8708 /* Line 1806 of yacc.c */ 8709 #line 2440 "parser.yy" 8710 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8711 break; 8712 8713 case 636: 8714 8715 /* Line 1806 of yacc.c */ 8716 #line 2442 "parser.yy" 8717 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8718 break; 8719 8720 case 637: 8721 8722 /* Line 1806 of yacc.c */ 8723 #line 2447 "parser.yy" 8447 #line 2460 "parser.yy" 8724 8448 { 8725 8449 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8728 8452 break; 8729 8453 8730 case 63 8:8731 8732 /* Line 1806 of yacc.c */ 8733 #line 24 52"parser.yy"8454 case 633: 8455 8456 /* Line 1806 of yacc.c */ 8457 #line 2465 "parser.yy" 8734 8458 { 8735 8459 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8738 8462 break; 8739 8463 8464 case 634: 8465 8466 /* Line 1806 of yacc.c */ 8467 #line 2473 "parser.yy" 8468 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8469 break; 8470 8471 case 635: 8472 8473 /* Line 1806 of yacc.c */ 8474 #line 2475 "parser.yy" 8475 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8476 break; 8477 8478 case 636: 8479 8480 /* Line 1806 of yacc.c */ 8481 #line 2477 "parser.yy" 8482 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8483 break; 8484 8485 case 637: 8486 8487 /* Line 1806 of yacc.c */ 8488 #line 2482 "parser.yy" 8489 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8490 break; 8491 8492 case 638: 8493 8494 /* Line 1806 of yacc.c */ 8495 #line 2484 "parser.yy" 8496 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8497 break; 8498 8740 8499 case 639: 8741 8500 8742 8501 /* Line 1806 of yacc.c */ 8743 #line 2460 "parser.yy" 8502 #line 2489 "parser.yy" 8503 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8504 break; 8505 8506 case 640: 8507 8508 /* Line 1806 of yacc.c */ 8509 #line 2491 "parser.yy" 8510 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8511 break; 8512 8513 case 642: 8514 8515 /* Line 1806 of yacc.c */ 8516 #line 2506 "parser.yy" 8517 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8518 break; 8519 8520 case 643: 8521 8522 /* Line 1806 of yacc.c */ 8523 #line 2508 "parser.yy" 8524 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8525 break; 8526 8527 case 644: 8528 8529 /* Line 1806 of yacc.c */ 8530 #line 2513 "parser.yy" 8531 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8532 break; 8533 8534 case 645: 8535 8536 /* Line 1806 of yacc.c */ 8537 #line 2515 "parser.yy" 8538 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8539 break; 8540 8541 case 646: 8542 8543 /* Line 1806 of yacc.c */ 8544 #line 2517 "parser.yy" 8744 8545 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8745 8546 break; 8746 8547 8747 case 64 0:8748 8749 /* Line 1806 of yacc.c */ 8750 #line 2 462"parser.yy"8548 case 647: 8549 8550 /* Line 1806 of yacc.c */ 8551 #line 2519 "parser.yy" 8751 8552 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8752 8553 break; 8753 8554 8754 case 64 1:8755 8756 /* Line 1806 of yacc.c */ 8757 #line 2 464"parser.yy"8555 case 648: 8556 8557 /* Line 1806 of yacc.c */ 8558 #line 2521 "parser.yy" 8758 8559 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8759 8560 break; 8760 8561 8761 case 642: 8762 8763 /* Line 1806 of yacc.c */ 8764 #line 2469 "parser.yy" 8562 case 650: 8563 8564 /* Line 1806 of yacc.c */ 8565 #line 2527 "parser.yy" 8566 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8567 break; 8568 8569 case 651: 8570 8571 /* Line 1806 of yacc.c */ 8572 #line 2529 "parser.yy" 8573 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8574 break; 8575 8576 case 652: 8577 8578 /* Line 1806 of yacc.c */ 8579 #line 2531 "parser.yy" 8580 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8581 break; 8582 8583 case 653: 8584 8585 /* Line 1806 of yacc.c */ 8586 #line 2536 "parser.yy" 8587 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8588 break; 8589 8590 case 654: 8591 8592 /* Line 1806 of yacc.c */ 8593 #line 2538 "parser.yy" 8594 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8595 break; 8596 8597 case 655: 8598 8599 /* Line 1806 of yacc.c */ 8600 #line 2540 "parser.yy" 8601 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8602 break; 8603 8604 case 656: 8605 8606 /* Line 1806 of yacc.c */ 8607 #line 2546 "parser.yy" 8608 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8609 break; 8610 8611 case 657: 8612 8613 /* Line 1806 of yacc.c */ 8614 #line 2548 "parser.yy" 8615 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8616 break; 8617 8618 case 659: 8619 8620 /* Line 1806 of yacc.c */ 8621 #line 2554 "parser.yy" 8622 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8623 break; 8624 8625 case 660: 8626 8627 /* Line 1806 of yacc.c */ 8628 #line 2556 "parser.yy" 8629 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8630 break; 8631 8632 case 661: 8633 8634 /* Line 1806 of yacc.c */ 8635 #line 2558 "parser.yy" 8636 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8637 break; 8638 8639 case 662: 8640 8641 /* Line 1806 of yacc.c */ 8642 #line 2560 "parser.yy" 8643 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8644 break; 8645 8646 case 664: 8647 8648 /* Line 1806 of yacc.c */ 8649 #line 2575 "parser.yy" 8650 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8651 break; 8652 8653 case 665: 8654 8655 /* Line 1806 of yacc.c */ 8656 #line 2577 "parser.yy" 8657 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8658 break; 8659 8660 case 666: 8661 8662 /* Line 1806 of yacc.c */ 8663 #line 2582 "parser.yy" 8664 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8665 break; 8666 8667 case 667: 8668 8669 /* Line 1806 of yacc.c */ 8670 #line 2584 "parser.yy" 8671 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8672 break; 8673 8674 case 668: 8675 8676 /* Line 1806 of yacc.c */ 8677 #line 2586 "parser.yy" 8678 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8679 break; 8680 8681 case 669: 8682 8683 /* Line 1806 of yacc.c */ 8684 #line 2588 "parser.yy" 8685 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8686 break; 8687 8688 case 670: 8689 8690 /* Line 1806 of yacc.c */ 8691 #line 2590 "parser.yy" 8692 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8693 break; 8694 8695 case 672: 8696 8697 /* Line 1806 of yacc.c */ 8698 #line 2596 "parser.yy" 8699 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8700 break; 8701 8702 case 673: 8703 8704 /* Line 1806 of yacc.c */ 8705 #line 2598 "parser.yy" 8706 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8707 break; 8708 8709 case 674: 8710 8711 /* Line 1806 of yacc.c */ 8712 #line 2600 "parser.yy" 8713 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8714 break; 8715 8716 case 675: 8717 8718 /* Line 1806 of yacc.c */ 8719 #line 2605 "parser.yy" 8720 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8721 break; 8722 8723 case 676: 8724 8725 /* Line 1806 of yacc.c */ 8726 #line 2607 "parser.yy" 8727 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8728 break; 8729 8730 case 677: 8731 8732 /* Line 1806 of yacc.c */ 8733 #line 2609 "parser.yy" 8734 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8735 break; 8736 8737 case 679: 8738 8739 /* Line 1806 of yacc.c */ 8740 #line 2616 "parser.yy" 8765 8741 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8766 8742 break; 8767 8743 8768 case 643: 8769 8770 /* Line 1806 of yacc.c */ 8771 #line 2471 "parser.yy" 8744 case 681: 8745 8746 /* Line 1806 of yacc.c */ 8747 #line 2627 "parser.yy" 8748 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8749 break; 8750 8751 case 682: 8752 8753 /* Line 1806 of yacc.c */ 8754 #line 2630 "parser.yy" 8755 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8756 break; 8757 8758 case 683: 8759 8760 /* Line 1806 of yacc.c */ 8761 #line 2632 "parser.yy" 8762 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8763 break; 8764 8765 case 684: 8766 8767 /* Line 1806 of yacc.c */ 8768 #line 2635 "parser.yy" 8769 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8770 break; 8771 8772 case 685: 8773 8774 /* Line 1806 of yacc.c */ 8775 #line 2637 "parser.yy" 8776 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8777 break; 8778 8779 case 686: 8780 8781 /* Line 1806 of yacc.c */ 8782 #line 2639 "parser.yy" 8783 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8784 break; 8785 8786 case 688: 8787 8788 /* Line 1806 of yacc.c */ 8789 #line 2653 "parser.yy" 8790 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8791 break; 8792 8793 case 689: 8794 8795 /* Line 1806 of yacc.c */ 8796 #line 2655 "parser.yy" 8797 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8798 break; 8799 8800 case 690: 8801 8802 /* Line 1806 of yacc.c */ 8803 #line 2660 "parser.yy" 8804 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8805 break; 8806 8807 case 691: 8808 8809 /* Line 1806 of yacc.c */ 8810 #line 2662 "parser.yy" 8811 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8812 break; 8813 8814 case 692: 8815 8816 /* Line 1806 of yacc.c */ 8817 #line 2664 "parser.yy" 8818 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8819 break; 8820 8821 case 693: 8822 8823 /* Line 1806 of yacc.c */ 8824 #line 2666 "parser.yy" 8825 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8826 break; 8827 8828 case 694: 8829 8830 /* Line 1806 of yacc.c */ 8831 #line 2668 "parser.yy" 8832 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8833 break; 8834 8835 case 696: 8836 8837 /* Line 1806 of yacc.c */ 8838 #line 2674 "parser.yy" 8772 8839 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8773 8840 break; 8774 8841 8775 case 644: 8776 8777 /* Line 1806 of yacc.c */ 8778 #line 2476 "parser.yy" 8779 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8780 break; 8781 8782 case 645: 8783 8784 /* Line 1806 of yacc.c */ 8785 #line 2478 "parser.yy" 8842 case 697: 8843 8844 /* Line 1806 of yacc.c */ 8845 #line 2676 "parser.yy" 8846 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8847 break; 8848 8849 case 698: 8850 8851 /* Line 1806 of yacc.c */ 8852 #line 2678 "parser.yy" 8853 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8854 break; 8855 8856 case 699: 8857 8858 /* Line 1806 of yacc.c */ 8859 #line 2683 "parser.yy" 8786 8860 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8787 8861 break; 8788 8862 8789 case 647: 8790 8791 /* Line 1806 of yacc.c */ 8792 #line 2493 "parser.yy" 8793 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8794 break; 8795 8796 case 648: 8797 8798 /* Line 1806 of yacc.c */ 8799 #line 2495 "parser.yy" 8800 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8801 break; 8802 8803 case 649: 8804 8805 /* Line 1806 of yacc.c */ 8806 #line 2500 "parser.yy" 8807 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8808 break; 8809 8810 case 650: 8811 8812 /* Line 1806 of yacc.c */ 8813 #line 2502 "parser.yy" 8814 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8815 break; 8816 8817 case 651: 8818 8819 /* Line 1806 of yacc.c */ 8820 #line 2504 "parser.yy" 8821 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8822 break; 8823 8824 case 652: 8825 8826 /* Line 1806 of yacc.c */ 8827 #line 2506 "parser.yy" 8828 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8829 break; 8830 8831 case 653: 8832 8833 /* Line 1806 of yacc.c */ 8834 #line 2508 "parser.yy" 8863 case 700: 8864 8865 /* Line 1806 of yacc.c */ 8866 #line 2685 "parser.yy" 8835 8867 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8836 8868 break; 8837 8869 8838 case 655: 8839 8840 /* Line 1806 of yacc.c */ 8841 #line 2514 "parser.yy" 8842 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8843 break; 8844 8845 case 656: 8846 8847 /* Line 1806 of yacc.c */ 8848 #line 2516 "parser.yy" 8849 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8850 break; 8851 8852 case 657: 8853 8854 /* Line 1806 of yacc.c */ 8855 #line 2518 "parser.yy" 8856 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8857 break; 8858 8859 case 658: 8860 8861 /* Line 1806 of yacc.c */ 8862 #line 2523 "parser.yy" 8863 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8864 break; 8865 8866 case 659: 8867 8868 /* Line 1806 of yacc.c */ 8869 #line 2525 "parser.yy" 8870 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8871 break; 8872 8873 case 660: 8874 8875 /* Line 1806 of yacc.c */ 8876 #line 2527 "parser.yy" 8877 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8878 break; 8879 8880 case 661: 8881 8882 /* Line 1806 of yacc.c */ 8883 #line 2533 "parser.yy" 8884 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8885 break; 8886 8887 case 662: 8888 8889 /* Line 1806 of yacc.c */ 8890 #line 2535 "parser.yy" 8891 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8892 break; 8893 8894 case 664: 8895 8896 /* Line 1806 of yacc.c */ 8897 #line 2541 "parser.yy" 8898 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8899 break; 8900 8901 case 665: 8902 8903 /* Line 1806 of yacc.c */ 8904 #line 2543 "parser.yy" 8905 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8906 break; 8907 8908 case 666: 8909 8910 /* Line 1806 of yacc.c */ 8911 #line 2545 "parser.yy" 8912 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8913 break; 8914 8915 case 667: 8916 8917 /* Line 1806 of yacc.c */ 8918 #line 2547 "parser.yy" 8919 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8920 break; 8921 8922 case 669: 8923 8924 /* Line 1806 of yacc.c */ 8925 #line 2562 "parser.yy" 8926 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8927 break; 8928 8929 case 670: 8930 8931 /* Line 1806 of yacc.c */ 8932 #line 2564 "parser.yy" 8933 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8934 break; 8935 8936 case 671: 8937 8938 /* Line 1806 of yacc.c */ 8939 #line 2569 "parser.yy" 8940 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8941 break; 8942 8943 case 672: 8944 8945 /* Line 1806 of yacc.c */ 8946 #line 2571 "parser.yy" 8947 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8948 break; 8949 8950 case 673: 8951 8952 /* Line 1806 of yacc.c */ 8953 #line 2573 "parser.yy" 8954 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8955 break; 8956 8957 case 674: 8958 8959 /* Line 1806 of yacc.c */ 8960 #line 2575 "parser.yy" 8961 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8962 break; 8963 8964 case 675: 8965 8966 /* Line 1806 of yacc.c */ 8967 #line 2577 "parser.yy" 8968 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8969 break; 8970 8971 case 677: 8972 8973 /* Line 1806 of yacc.c */ 8974 #line 2583 "parser.yy" 8975 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8976 break; 8977 8978 case 678: 8979 8980 /* Line 1806 of yacc.c */ 8981 #line 2585 "parser.yy" 8982 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8983 break; 8984 8985 case 679: 8986 8987 /* Line 1806 of yacc.c */ 8988 #line 2587 "parser.yy" 8989 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8990 break; 8991 8992 case 680: 8993 8994 /* Line 1806 of yacc.c */ 8995 #line 2592 "parser.yy" 8996 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8997 break; 8998 8999 case 681: 9000 9001 /* Line 1806 of yacc.c */ 9002 #line 2594 "parser.yy" 9003 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9004 break; 9005 9006 case 682: 9007 9008 /* Line 1806 of yacc.c */ 9009 #line 2596 "parser.yy" 9010 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9011 break; 9012 9013 case 684: 9014 9015 /* Line 1806 of yacc.c */ 9016 #line 2603 "parser.yy" 9017 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 9018 break; 9019 9020 case 686: 9021 9022 /* Line 1806 of yacc.c */ 9023 #line 2614 "parser.yy" 9024 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 9025 break; 9026 9027 case 687: 9028 9029 /* Line 1806 of yacc.c */ 9030 #line 2617 "parser.yy" 8870 case 703: 8871 8872 /* Line 1806 of yacc.c */ 8873 #line 2695 "parser.yy" 8874 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8875 break; 8876 8877 case 706: 8878 8879 /* Line 1806 of yacc.c */ 8880 #line 2705 "parser.yy" 8881 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8882 break; 8883 8884 case 707: 8885 8886 /* Line 1806 of yacc.c */ 8887 #line 2707 "parser.yy" 8888 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8889 break; 8890 8891 case 708: 8892 8893 /* Line 1806 of yacc.c */ 8894 #line 2709 "parser.yy" 8895 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8896 break; 8897 8898 case 709: 8899 8900 /* Line 1806 of yacc.c */ 8901 #line 2711 "parser.yy" 8902 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8903 break; 8904 8905 case 710: 8906 8907 /* Line 1806 of yacc.c */ 8908 #line 2713 "parser.yy" 8909 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8910 break; 8911 8912 case 711: 8913 8914 /* Line 1806 of yacc.c */ 8915 #line 2715 "parser.yy" 8916 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8917 break; 8918 8919 case 712: 8920 8921 /* Line 1806 of yacc.c */ 8922 #line 2722 "parser.yy" 8923 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8924 break; 8925 8926 case 713: 8927 8928 /* Line 1806 of yacc.c */ 8929 #line 2724 "parser.yy" 8930 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8931 break; 8932 8933 case 714: 8934 8935 /* Line 1806 of yacc.c */ 8936 #line 2726 "parser.yy" 8937 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8938 break; 8939 8940 case 715: 8941 8942 /* Line 1806 of yacc.c */ 8943 #line 2728 "parser.yy" 8944 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8945 break; 8946 8947 case 716: 8948 8949 /* Line 1806 of yacc.c */ 8950 #line 2730 "parser.yy" 8951 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8952 break; 8953 8954 case 717: 8955 8956 /* Line 1806 of yacc.c */ 8957 #line 2732 "parser.yy" 8958 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8959 break; 8960 8961 case 718: 8962 8963 /* Line 1806 of yacc.c */ 8964 #line 2734 "parser.yy" 8965 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8966 break; 8967 8968 case 719: 8969 8970 /* Line 1806 of yacc.c */ 8971 #line 2736 "parser.yy" 8972 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8973 break; 8974 8975 case 720: 8976 8977 /* Line 1806 of yacc.c */ 8978 #line 2738 "parser.yy" 8979 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8980 break; 8981 8982 case 721: 8983 8984 /* Line 1806 of yacc.c */ 8985 #line 2740 "parser.yy" 8986 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8987 break; 8988 8989 case 722: 8990 8991 /* Line 1806 of yacc.c */ 8992 #line 2745 "parser.yy" 9031 8993 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9032 8994 break; 9033 8995 9034 case 688: 9035 9036 /* Line 1806 of yacc.c */ 9037 #line 2619 "parser.yy" 9038 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 9039 break; 9040 9041 case 689: 9042 9043 /* Line 1806 of yacc.c */ 9044 #line 2622 "parser.yy" 8996 case 723: 8997 8998 /* Line 1806 of yacc.c */ 8999 #line 2747 "parser.yy" 9045 9000 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9046 9001 break; 9047 9002 9048 case 690: 9049 9050 /* Line 1806 of yacc.c */ 9051 #line 2624 "parser.yy" 9052 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 9053 break; 9054 9055 case 691: 9056 9057 /* Line 1806 of yacc.c */ 9058 #line 2626 "parser.yy" 9059 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 9060 break; 9061 9062 case 693: 9063 9064 /* Line 1806 of yacc.c */ 9065 #line 2640 "parser.yy" 9066 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9067 break; 9068 9069 case 694: 9070 9071 /* Line 1806 of yacc.c */ 9072 #line 2642 "parser.yy" 9073 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9074 break; 9075 9076 case 695: 9077 9078 /* Line 1806 of yacc.c */ 9079 #line 2647 "parser.yy" 9080 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 9081 break; 9082 9083 case 696: 9084 9085 /* Line 1806 of yacc.c */ 9086 #line 2649 "parser.yy" 9087 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 9088 break; 9089 9090 case 697: 9091 9092 /* Line 1806 of yacc.c */ 9093 #line 2651 "parser.yy" 9094 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 9095 break; 9096 9097 case 698: 9098 9099 /* Line 1806 of yacc.c */ 9100 #line 2653 "parser.yy" 9101 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 9102 break; 9103 9104 case 699: 9105 9106 /* Line 1806 of yacc.c */ 9107 #line 2655 "parser.yy" 9108 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9109 break; 9110 9111 case 701: 9112 9113 /* Line 1806 of yacc.c */ 9114 #line 2661 "parser.yy" 9115 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9116 break; 9117 9118 case 702: 9119 9120 /* Line 1806 of yacc.c */ 9121 #line 2663 "parser.yy" 9122 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9123 break; 9124 9125 case 703: 9126 9127 /* Line 1806 of yacc.c */ 9128 #line 2665 "parser.yy" 9129 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9130 break; 9131 9132 case 704: 9133 9134 /* Line 1806 of yacc.c */ 9135 #line 2670 "parser.yy" 9136 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9137 break; 9138 9139 case 705: 9140 9141 /* Line 1806 of yacc.c */ 9142 #line 2672 "parser.yy" 9143 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9144 break; 9145 9146 case 708: 9147 9148 /* Line 1806 of yacc.c */ 9149 #line 2682 "parser.yy" 9003 case 724: 9004 9005 /* Line 1806 of yacc.c */ 9006 #line 2752 "parser.yy" 9007 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9008 break; 9009 9010 case 725: 9011 9012 /* Line 1806 of yacc.c */ 9013 #line 2754 "parser.yy" 9014 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9015 break; 9016 9017 case 727: 9018 9019 /* Line 1806 of yacc.c */ 9020 #line 2781 "parser.yy" 9150 9021 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9151 9022 break; 9152 9023 9153 case 7 11:9154 9155 /* Line 1806 of yacc.c */ 9156 #line 2 692 "parser.yy"9024 case 731: 9025 9026 /* Line 1806 of yacc.c */ 9027 #line 2792 "parser.yy" 9157 9028 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9158 9029 break; 9159 9030 9160 case 7 12:9161 9162 /* Line 1806 of yacc.c */ 9163 #line 2 694 "parser.yy"9031 case 732: 9032 9033 /* Line 1806 of yacc.c */ 9034 #line 2794 "parser.yy" 9164 9035 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9165 9036 break; 9166 9037 9167 case 7 13:9168 9169 /* Line 1806 of yacc.c */ 9170 #line 2 696 "parser.yy"9038 case 733: 9039 9040 /* Line 1806 of yacc.c */ 9041 #line 2796 "parser.yy" 9171 9042 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9172 9043 break; 9173 9044 9174 case 7 14:9175 9176 /* Line 1806 of yacc.c */ 9177 #line 2 698 "parser.yy"9045 case 734: 9046 9047 /* Line 1806 of yacc.c */ 9048 #line 2798 "parser.yy" 9178 9049 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9179 9050 break; 9180 9051 9181 case 7 15:9182 9183 /* Line 1806 of yacc.c */ 9184 #line 2 700 "parser.yy"9052 case 735: 9053 9054 /* Line 1806 of yacc.c */ 9055 #line 2800 "parser.yy" 9185 9056 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9186 9057 break; 9187 9058 9188 case 7 16:9189 9190 /* Line 1806 of yacc.c */ 9191 #line 2 702 "parser.yy"9059 case 736: 9060 9061 /* Line 1806 of yacc.c */ 9062 #line 2802 "parser.yy" 9192 9063 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9193 9064 break; 9194 9065 9195 case 7 17:9196 9197 /* Line 1806 of yacc.c */ 9198 #line 2 709 "parser.yy"9066 case 737: 9067 9068 /* Line 1806 of yacc.c */ 9069 #line 2809 "parser.yy" 9199 9070 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9200 9071 break; 9201 9072 9202 case 718: 9203 9204 /* Line 1806 of yacc.c */ 9205 #line 2711 "parser.yy" 9073 case 738: 9074 9075 /* Line 1806 of yacc.c */ 9076 #line 2811 "parser.yy" 9077 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9078 break; 9079 9080 case 739: 9081 9082 /* Line 1806 of yacc.c */ 9083 #line 2813 "parser.yy" 9206 9084 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9207 9085 break; 9208 9086 9209 case 719: 9210 9211 /* Line 1806 of yacc.c */ 9212 #line 2713 "parser.yy" 9087 case 740: 9088 9089 /* Line 1806 of yacc.c */ 9090 #line 2815 "parser.yy" 9091 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9092 break; 9093 9094 case 741: 9095 9096 /* Line 1806 of yacc.c */ 9097 #line 2817 "parser.yy" 9213 9098 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9214 9099 break; 9215 9100 9216 case 720: 9217 9218 /* Line 1806 of yacc.c */ 9219 #line 2715 "parser.yy" 9220 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9221 break; 9222 9223 case 721: 9224 9225 /* Line 1806 of yacc.c */ 9226 #line 2717 "parser.yy" 9101 case 742: 9102 9103 /* Line 1806 of yacc.c */ 9104 #line 2819 "parser.yy" 9227 9105 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9228 9106 break; 9229 9107 9230 case 722:9231 9232 /* Line 1806 of yacc.c */9233 #line 2719 "parser.yy"9234 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9235 break;9236 9237 case 723:9238 9239 /* Line 1806 of yacc.c */9240 #line 2721 "parser.yy"9241 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9242 break;9243 9244 case 724:9245 9246 /* Line 1806 of yacc.c */9247 #line 2723 "parser.yy"9248 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9249 break;9250 9251 case 725:9252 9253 /* Line 1806 of yacc.c */9254 #line 2725 "parser.yy"9255 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9256 break;9257 9258 case 726:9259 9260 /* Line 1806 of yacc.c */9261 #line 2727 "parser.yy"9262 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9263 break;9264 9265 case 727:9266 9267 /* Line 1806 of yacc.c */9268 #line 2732 "parser.yy"9269 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }9270 break;9271 9272 case 728:9273 9274 /* Line 1806 of yacc.c */9275 #line 2734 "parser.yy"9276 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }9277 break;9278 9279 case 729:9280 9281 /* Line 1806 of yacc.c */9282 #line 2739 "parser.yy"9283 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }9284 break;9285 9286 case 730:9287 9288 /* Line 1806 of yacc.c */9289 #line 2741 "parser.yy"9290 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }9291 break;9292 9293 case 732:9294 9295 /* Line 1806 of yacc.c */9296 #line 2768 "parser.yy"9297 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }9298 break;9299 9300 case 736:9301 9302 /* Line 1806 of yacc.c */9303 #line 2779 "parser.yy"9304 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9305 break;9306 9307 case 737:9308 9309 /* Line 1806 of yacc.c */9310 #line 2781 "parser.yy"9311 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9312 break;9313 9314 case 738:9315 9316 /* Line 1806 of yacc.c */9317 #line 2783 "parser.yy"9318 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9319 break;9320 9321 case 739:9322 9323 /* Line 1806 of yacc.c */9324 #line 2785 "parser.yy"9325 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9326 break;9327 9328 case 740:9329 9330 /* Line 1806 of yacc.c */9331 #line 2787 "parser.yy"9332 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9333 break;9334 9335 case 741:9336 9337 /* Line 1806 of yacc.c */9338 #line 2789 "parser.yy"9339 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9340 break;9341 9342 case 742:9343 9344 /* Line 1806 of yacc.c */9345 #line 2796 "parser.yy"9346 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9347 break;9348 9349 9108 case 743: 9350 9109 9351 9110 /* Line 1806 of yacc.c */ 9352 #line 2 798"parser.yy"9353 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false) ); }9111 #line 2824 "parser.yy" 9112 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9354 9113 break; 9355 9114 … … 9357 9116 9358 9117 /* Line 1806 of yacc.c */ 9359 #line 28 00"parser.yy"9360 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl)); }9118 #line 2829 "parser.yy" 9119 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9361 9120 break; 9362 9121 … … 9364 9123 9365 9124 /* Line 1806 of yacc.c */ 9366 #line 28 02"parser.yy"9367 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false )); }9125 #line 2831 "parser.yy" 9126 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9368 9127 break; 9369 9128 … … 9371 9130 9372 9131 /* Line 1806 of yacc.c */ 9373 #line 2804 "parser.yy" 9374 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9375 break; 9376 9377 case 747: 9378 9379 /* Line 1806 of yacc.c */ 9380 #line 2806 "parser.yy" 9381 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9382 break; 9383 9384 case 748: 9385 9386 /* Line 1806 of yacc.c */ 9387 #line 2811 "parser.yy" 9388 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9132 #line 2833 "parser.yy" 9133 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9389 9134 break; 9390 9135 … … 9392 9137 9393 9138 /* Line 1806 of yacc.c */ 9394 #line 28 16"parser.yy"9395 { (yyval. decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }9139 #line 2857 "parser.yy" 9140 { (yyval.en) = 0; } 9396 9141 break; 9397 9142 … … 9399 9144 9400 9145 /* Line 1806 of yacc.c */ 9401 #line 2818 "parser.yy" 9402 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9403 break; 9404 9405 case 751: 9406 9407 /* Line 1806 of yacc.c */ 9408 #line 2820 "parser.yy" 9409 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9410 break; 9411 9412 case 754: 9413 9414 /* Line 1806 of yacc.c */ 9415 #line 2844 "parser.yy" 9416 { (yyval.en) = 0; } 9417 break; 9418 9419 case 755: 9420 9421 /* Line 1806 of yacc.c */ 9422 #line 2846 "parser.yy" 9146 #line 2859 "parser.yy" 9423 9147 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9424 9148 break; … … 9427 9151 9428 9152 /* Line 1806 of yacc.c */ 9429 #line 9 430"Parser/parser.cc"9153 #line 9154 "Parser/parser.cc" 9430 9154 default: break; 9431 9155 } … … 9658 9382 9659 9383 /* Line 2067 of yacc.c */ 9660 #line 28 49"parser.yy"9384 #line 2862 "parser.yy" 9661 9385 9662 9386 // ----end of grammar---- -
src/Parser/parser.h
rf18a711 r3078643 262 262 263 263 /* Line 2068 of yacc.c */ 264 #line 11 0"parser.yy"264 #line 115 "parser.yy" 265 265 266 266 Token tok; … … 271 271 DeclarationNode::TypeClass tclass; 272 272 StatementNode *sn; 273 ConstantNode *constant; 273 ConstantExpr *constant; 274 ForCtl *fctl; 274 275 LabelNode *label; 275 276 InitializerNode *in; 276 Oper atorNode::Typeop;277 OperKinds op; 277 278 bool flag; 278 279 … … 280 281 281 282 /* Line 2068 of yacc.c */ 282 #line 28 3"Parser/parser.h"283 #line 284 "Parser/parser.h" 283 284 } YYSTYPE; 284 285 # define YYSTYPE_IS_TRIVIAL 1 -
src/Parser/parser.yy
rf18a711 r3078643 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Aug 5 08:15:57201613 // Update Count : 1 72112 // Last Modified On : Wed Aug 10 13:09:53 2016 13 // Update Count : 1844 14 14 // 15 15 … … 60 60 std::stack< LinkageSpec::Type > linkageStack; 61 61 TypedefTable typedefTable; 62 63 void appendStr( std::string &to, std::string *from ) { 64 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 65 to.insert( to.length() - 1, from->substr( 1, from->length() - 2 ) ); 66 } // appendStr 62 67 %} 63 68 … … 116 121 DeclarationNode::TypeClass tclass; 117 122 StatementNode *sn; 118 ConstantNode *constant; 123 ConstantExpr *constant; 124 ForCtl *fctl; 119 125 LabelNode *label; 120 126 InitializerNode *in; 121 Oper atorNode::Typeop;127 OperKinds op; 122 128 bool flag; 123 129 } … … 128 134 129 135 // expressions 130 %type< constant> constant136 %type<en> constant 131 137 %type<en> tuple tuple_expression_list 132 %type<op> ptrref_operator 133 %type<en> unary_operator assignment_operator 138 %type<op> ptrref_operator unary_operator assignment_operator 134 139 %type<en> primary_expression postfix_expression unary_expression 135 140 %type<en> cast_expression multiplicative_expression additive_expression shift_expression … … 138 143 %type<en> constant_expression assignment_expression assignment_expression_opt 139 144 %type<en> comma_expression comma_expression_opt 140 %type<en> argument_expression_list argument_expression for_control_expression assignment_opt 145 //%type<en> argument_expression_list argument_expression for_control_expression assignment_opt 146 %type<en> argument_expression_list argument_expression assignment_opt 147 %type<fctl> for_control_expression 141 148 %type<en> subrange 142 149 %type<en> asm_operands_opt asm_operands_list asm_operand 143 150 %type<label> label_list 144 %type< constant> asm_clobbers_list_opt151 %type<en> asm_clobbers_list_opt 145 152 %type<flag> asm_volatile_opt 146 153 … … 305 312 constant: 306 313 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 307 INTEGERconstant { $$ = makeConstantInteger( *$1); }308 | FLOATINGconstant { $$ = makeConstantFloat( *$1); }309 | CHARACTERconstant { $$ = makeConstantChar( *$1); }314 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); } 315 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); } 316 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( *$1 ) ); } 310 317 ; 311 318 … … 332 339 333 340 string_literal_list: // juxtaposed strings are concatenated 334 STRINGliteral { $$ = makeConstantStr( *$1 ); } 335 | string_literal_list STRINGliteral { $$ = $1->appendstr( $2 ); } 341 STRINGliteral { $$ = build_constantStr( *$1 ); } 342 | string_literal_list STRINGliteral 343 { 344 appendStr( $1->get_constant()->get_value(), $2 ); 345 delete $2; // allocated by lexer 346 $$ = $1; 347 } 336 348 ; 337 349 … … 340 352 primary_expression: 341 353 IDENTIFIER // typedef name cannot be used as a variable name 342 { $$ = new VarRefNode( $1); }354 { $$ = new ExpressionNode( build_varref( $1 ) ); } 343 355 | zero_one 344 { $$ = new VarRefNode( $1); }356 { $$ = new ExpressionNode( build_varref( $1 ) ); } 345 357 | '(' comma_expression ')' 346 358 { $$ = $2; } 347 359 | '(' compound_statement ')' // GCC, lambda expression 348 { $$ = new ValofExprNode( $2); }360 { $$ = new ExpressionNode( build_valexpr( $2 ) ); } 349 361 ; 350 362 … … 356 368 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is 357 369 // equivalent to the old x[i,j]. 358 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Index, $1, $4 ) ); }370 { $$ = new ExpressionNode( build_binary_val( OperKinds::Index, $1, $4 ) ); } 359 371 | postfix_expression '(' argument_expression_list ')' 360 { $$ = new CompositeExprNode( $1, $3); }372 { $$ = new ExpressionNode( build_func( $1, $3 ) ); } 361 373 // ambiguity with .0 so space required after field-selection, e.g. 362 374 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 363 375 | postfix_expression '.' no_attr_identifier 364 { $$ = new CompositeExprNode2( build_fieldSel( $1, new VarRefNode( $3 ) ) ); }376 { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); } 365 377 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 366 378 | postfix_expression ARROW no_attr_identifier 367 { $$ = new CompositeExprNode2( build_pfieldSel( $1, new VarRefNode( $3 ) ) ); }379 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } 368 380 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 369 381 | postfix_expression ICR 370 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, $1 ) ); }382 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, $1 ) ); } 371 383 | postfix_expression DECR 372 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, $1 ) ); }384 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, $1 ) ); } 373 385 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 374 { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true) ); }386 { $$ = new ExpressionNode( build_compoundLiteral( $2, new InitializerNode( $5, true ) ) ); } 375 387 | postfix_expression '{' argument_expression_list '}' // CFA 376 388 { 377 Token fn; fn.str = new std::string( "?{}" ); // location undefined 378 $$ = new CompositeExprNode( new VarRefNode( fn ), (ExpressionNode *)( $1 )->set_link( $3 ) ); 389 Token fn; 390 fn.str = new std::string( "?{}" ); // location undefined 391 $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_link( $3 ) ) ); 379 392 } 380 393 ; … … 390 403 { $$ = 0; } // use default argument 391 404 | assignment_expression 392 | no_attr_identifier ':' assignment_expression393 { $$ = $3->set_argName( $1 ); }394 // Only a list of no_attr_identifier_or_type_name is allowed in this context. However, there is insufficient395 // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used396 // with an appropriate semantic check.397 | '[' push assignment_expression pop ']' ':' assignment_expression398 { $$ = $7->set_argName( $3 ); }399 | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression400 { $$ = $9->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); }401 405 ; 402 406 … … 408 412 field: // CFA, tuple field selector 409 413 no_attr_identifier 410 { $$ = new VarRefNode( $1); }414 { $$ = new ExpressionNode( build_varref( $1 ) ); } 411 415 // ambiguity with .0 so space required after field-selection, e.g. 412 416 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 413 417 | no_attr_identifier '.' field 414 { $$ = new CompositeExprNode2( build_fieldSel( $3, new VarRefNode( $1 ) ) ); }418 { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); } 415 419 | no_attr_identifier '.' '[' push field_list pop ']' 416 { $$ = new CompositeExprNode2( build_fieldSel( $5, new VarRefNode( $1 ) ) ); }420 { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); } 417 421 | no_attr_identifier ARROW field 418 { $$ = new CompositeExprNode2( build_pfieldSel( $3, new VarRefNode( $1 ) ) ); }422 { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); } 419 423 | no_attr_identifier ARROW '[' push field_list pop ']' 420 { $$ = new CompositeExprNode2( build_pfieldSel( $5, new VarRefNode( $1 ) ) ); }424 { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); } 421 425 ; 422 426 … … 428 432 { $$ = $1; } 429 433 | string_literal_list 430 { $$ = $1; }434 { $$ = new ExpressionNode( $1 ); } 431 435 | EXTENSION cast_expression // GCC 432 436 { $$ = $2->set_extension( true ); } … … 435 439 // { * int X; } // CFA declaration of pointer to int 436 440 | ptrref_operator cast_expression // CFA 437 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) ) 438 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); } 441 { 442 switch ( $1 ) { 443 case OperKinds::AddressOf: 444 $$ = new ExpressionNode( build_addressOf( $2 ) ); 445 break; 446 case OperKinds::PointTo: 447 $$ = new ExpressionNode( build_unary_val( $1, $2 ) ); 448 break; 449 default: 450 assert( false ); 451 } 452 } 439 453 | unary_operator cast_expression 440 { $$ = new CompositeExprNode( $1, $2); }454 { $$ = new ExpressionNode( build_unary_val( $1, $2 ) ); } 441 455 | ICR unary_expression 442 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Incr, $2 ) ); }456 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::Incr, $2 ) ); } 443 457 | DECR unary_expression 444 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Decr, $2 ) ); }458 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::Decr, $2 ) ); } 445 459 | SIZEOF unary_expression 446 { $$ = new CompositeExprNode2( build_sizeOf( $2 ) ); }460 { $$ = new ExpressionNode( build_sizeOfexpr( $2 ) ); } 447 461 | SIZEOF '(' type_name_no_function ')' 448 { $$ = new CompositeExprNode2( build_sizeOf( new TypeValueNode( $3 ) ) ); } 462 { $$ = new ExpressionNode( build_sizeOftype( $3 ) ); } 463 | ALIGNOF unary_expression // GCC, variable alignment 464 { $$ = new ExpressionNode( build_alignOfexpr( $2 ) ); } 465 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 466 { $$ = new ExpressionNode( build_alignOftype( $3 ) ); } 449 467 | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')' 450 { $$ = new CompositeExprNode2( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); }468 { $$ = new ExpressionNode( build_offsetOf( $3, build_varref( $5 ) ) ); } 451 469 | ATTR_IDENTIFIER 452 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); } 470 { $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), nullptr ) ); } 471 | ATTR_IDENTIFIER '(' argument_expression ')' 472 { $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), $3 ) ); } 453 473 | ATTR_IDENTIFIER '(' type_name ')' 454 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); } 455 | ATTR_IDENTIFIER '(' argument_expression ')' 456 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); } 457 | ALIGNOF unary_expression // GCC, variable alignment 458 { $$ = new CompositeExprNode2( build_alignOf( $2 ) ); } 459 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 460 { $$ = new CompositeExprNode2( build_alignOf( new TypeValueNode( $3 ) ) ); } 474 { $$ = new ExpressionNode( build_attrtype( build_varref( $1 ), $3 ) ); } 461 475 // | ANDAND IDENTIFIER // GCC, address of label 462 // { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); }476 // { $$ = new ExpressionNode( new OperatorNode( OperKinds::LabelAddress ), new ExpressionNode( build_varref( $2, true ) ); } 463 477 ; 464 478 465 479 ptrref_operator: 466 '*' { $$ = Oper atorNode::PointTo; }467 | '&' { $$ = Oper atorNode::AddressOf; }480 '*' { $$ = OperKinds::PointTo; } 481 | '&' { $$ = OperKinds::AddressOf; } 468 482 // GCC, address of label must be handled by semantic check for ref,ref,label 469 | ANDAND { $$ = OperatorNode::And; }483 // | ANDAND { $$ = OperKinds::And; } 470 484 ; 471 485 472 486 unary_operator: 473 '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); }474 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus ); }475 | '!' { $$ = new OperatorNode( OperatorNode::Neg ); }476 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg ); }487 '+' { $$ = OperKinds::UnPlus; } 488 | '-' { $$ = OperKinds::UnMinus; } 489 | '!' { $$ = OperKinds::Neg; } 490 | '~' { $$ = OperKinds::BitNeg; } 477 491 ; 478 492 … … 480 494 unary_expression 481 495 | '(' type_name_no_function ')' cast_expression 482 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); }496 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 483 497 | '(' type_name_no_function ')' tuple 484 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); }498 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 485 499 ; 486 500 … … 488 502 cast_expression 489 503 | multiplicative_expression '*' cast_expression 490 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mul, $1, $3 ) ); }504 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mul, $1, $3 ) ); } 491 505 | multiplicative_expression '/' cast_expression 492 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Div, $1, $3 ) ); }506 { $$ = new ExpressionNode( build_binary_val( OperKinds::Div, $1, $3 ) ); } 493 507 | multiplicative_expression '%' cast_expression 494 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mod, $1, $3 ) ); }508 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mod, $1, $3 ) ); } 495 509 ; 496 510 … … 498 512 multiplicative_expression 499 513 | additive_expression '+' multiplicative_expression 500 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Plus, $1, $3 ) ); }514 { $$ = new ExpressionNode( build_binary_val( OperKinds::Plus, $1, $3 ) ); } 501 515 | additive_expression '-' multiplicative_expression 502 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Minus, $1, $3 ) ); }516 { $$ = new ExpressionNode( build_binary_val( OperKinds::Minus, $1, $3 ) ); } 503 517 ; 504 518 … … 506 520 additive_expression 507 521 | shift_expression LS additive_expression 508 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LShift, $1, $3 ) ); }522 { $$ = new ExpressionNode( build_binary_val( OperKinds::LShift, $1, $3 ) ); } 509 523 | shift_expression RS additive_expression 510 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::RShift, $1, $3 ) ); }524 { $$ = new ExpressionNode( build_binary_val( OperKinds::RShift, $1, $3 ) ); } 511 525 ; 512 526 … … 514 528 shift_expression 515 529 | relational_expression '<' shift_expression 516 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LThan, $1, $3 ) ); }530 { $$ = new ExpressionNode( build_binary_val( OperKinds::LThan, $1, $3 ) ); } 517 531 | relational_expression '>' shift_expression 518 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GThan, $1, $3 ) ); }532 { $$ = new ExpressionNode( build_binary_val( OperKinds::GThan, $1, $3 ) ); } 519 533 | relational_expression LE shift_expression 520 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, $1, $3 ) ); }534 { $$ = new ExpressionNode( build_binary_val( OperKinds::LEThan, $1, $3 ) ); } 521 535 | relational_expression GE shift_expression 522 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, $1, $3 ) ); }536 { $$ = new ExpressionNode( build_binary_val( OperKinds::GEThan, $1, $3 ) ); } 523 537 ; 524 538 … … 526 540 relational_expression 527 541 | equality_expression EQ relational_expression 528 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Eq, $1, $3 ) ); }542 { $$ = new ExpressionNode( build_binary_val( OperKinds::Eq, $1, $3 ) ); } 529 543 | equality_expression NE relational_expression 530 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Neq, $1, $3 ) ); }544 { $$ = new ExpressionNode( build_binary_val( OperKinds::Neq, $1, $3 ) ); } 531 545 ; 532 546 … … 534 548 equality_expression 535 549 | AND_expression '&' equality_expression 536 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, $1, $3 ) ); }550 { $$ = new ExpressionNode( build_binary_val( OperKinds::BitAnd, $1, $3 ) ); } 537 551 ; 538 552 … … 540 554 AND_expression 541 555 | exclusive_OR_expression '^' AND_expression 542 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Xor, $1, $3 ) ); }556 { $$ = new ExpressionNode( build_binary_val( OperKinds::Xor, $1, $3 ) ); } 543 557 ; 544 558 … … 546 560 exclusive_OR_expression 547 561 | inclusive_OR_expression '|' exclusive_OR_expression 548 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, $1, $3 ) ); }562 { $$ = new ExpressionNode( build_binary_val( OperKinds::BitOr, $1, $3 ) ); } 549 563 ; 550 564 … … 552 566 inclusive_OR_expression 553 567 | logical_AND_expression ANDAND inclusive_OR_expression 554 { $$ = new CompositeExprNode2( build_and_or( $1, $3, true ) ); }568 { $$ = new ExpressionNode( build_and_or( $1, $3, true ) ); } 555 569 ; 556 570 … … 558 572 logical_AND_expression 559 573 | logical_OR_expression OROR logical_AND_expression 560 { $$ = new CompositeExprNode2( build_and_or( $1, $3, false ) ); }574 { $$ = new ExpressionNode( build_and_or( $1, $3, false ) ); } 561 575 ; 562 576 … … 564 578 logical_OR_expression 565 579 | logical_OR_expression '?' comma_expression ':' conditional_expression 566 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); } 580 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 581 // FIX ME: this hack computes $1 twice 567 582 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 568 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4); }583 { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); } 569 584 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 570 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); }585 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 571 586 ; 572 587 … … 578 593 // CFA, assignment is separated from assignment_operator to ensure no assignment operations for tuples 579 594 conditional_expression 580 | unary_expression '=' assignment_expression581 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }582 595 | unary_expression assignment_operator assignment_expression 583 { $$ = new CompositeExprNode( $2, $1, $3); }596 { $$ = new ExpressionNode( build_binary_ptr( $2, $1, $3 ) ); } 584 597 | tuple assignment_opt // CFA, tuple expression 585 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2); }598 { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); } 586 599 ; 587 600 588 601 assignment_expression_opt: 589 602 // empty 590 { $$ = n ew NullExprNode; }603 { $$ = nullptr; } 591 604 | assignment_expression 605 ; 606 607 assignment_operator: 608 '=' { $$ = OperKinds::Assign; } 609 | MULTassign { $$ = OperKinds::MulAssn; } 610 | DIVassign { $$ = OperKinds::DivAssn; } 611 | MODassign { $$ = OperKinds::ModAssn; } 612 | PLUSassign { $$ = OperKinds::PlusAssn; } 613 | MINUSassign { $$ = OperKinds::MinusAssn; } 614 | LSassign { $$ = OperKinds::LSAssn; } 615 | RSassign { $$ = OperKinds::RSAssn; } 616 | ANDassign { $$ = OperKinds::AndAssn; } 617 | ERassign { $$ = OperKinds::ERAssn; } 618 | ORassign { $$ = OperKinds::OrAssn; } 592 619 ; 593 620 … … 596 623 // comma_expression in new_identifier_parameter_array and new_abstract_array 597 624 '[' ']' 598 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC) ); }625 { $$ = new ExpressionNode( build_tuple() ); } 599 626 | '[' push assignment_expression pop ']' 600 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), $3); }627 { $$ = new ExpressionNode( build_tuple( $3 ) ); } 601 628 | '[' push ',' tuple_expression_list pop ']' 602 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( $4) ); }629 { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_link( $4 ) ) ); } 603 630 | '[' push assignment_expression ',' tuple_expression_list pop ']' 604 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 ) ) ); }631 { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)$3->set_link( $5 ) ) ); } 605 632 ; 606 633 … … 611 638 ; 612 639 613 assignment_operator:614 MULTassign { $$ = new OperatorNode( OperatorNode::MulAssn ); }615 | DIVassign { $$ = new OperatorNode( OperatorNode::DivAssn ); }616 | MODassign { $$ = new OperatorNode( OperatorNode::ModAssn ); }617 | PLUSassign { $$ = new OperatorNode( OperatorNode::PlusAssn ); }618 | MINUSassign { $$ = new OperatorNode( OperatorNode::MinusAssn ); }619 | LSassign { $$ = new OperatorNode( OperatorNode::LSAssn ); }620 | RSassign { $$ = new OperatorNode( OperatorNode::RSAssn ); }621 | ANDassign { $$ = new OperatorNode( OperatorNode::AndAssn ); }622 | ERassign { $$ = new OperatorNode( OperatorNode::ERAssn ); }623 | ORassign { $$ = new OperatorNode( OperatorNode::OrAssn ); }624 ;625 626 640 comma_expression: 627 641 assignment_expression 628 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3 ); } 629 //{ $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 630 { $$ = new CompositeExprNode2( build_comma( $1, $3 ) ); } 642 | comma_expression ',' assignment_expression 643 { $$ = new ExpressionNode( build_comma( $1, $3 ) ); } 631 644 ; 632 645 … … 650 663 | '^' postfix_expression '{' argument_expression_list '}' ';' // CFA 651 664 { 652 Token fn; fn.str = new std::string( "^?{}" ); // location undefined653 $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),654 (ExpressionNode *)( $2 )->set_link( $4) ), 0 );665 Token fn; 666 fn.str = new std::string( "^?{}" ); // location undefined 667 $$ = new StatementNode( StatementNode::Exp, new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_link( $4 ) ) ), 0 ); 655 668 } 656 669 ; … … 710 723 IF '(' comma_expression ')' statement %prec THEN 711 724 // explicitly deal with the shift/reduce conflict on if/else 712 { $$ = new StatementNode( StatementNode::If, $3, $5 ); } 725 //{ $$ = new StatementNode( StatementNode::If, $3, $5 ); } 726 { $$ = new StatementNode2( build_if( $3, $5, nullptr ) ); } 713 727 | IF '(' comma_expression ')' statement ELSE statement 714 { $$ = new StatementNode( StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7 )) ); } 728 //{ $$ = new StatementNode( StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7 )) ); } 729 { $$ = new StatementNode2( build_if( $3, $5, $7 ) ); } 715 730 | SWITCH '(' comma_expression ')' case_clause // CFA 716 { $$ = new StatementNode( StatementNode::Switch, $3, $5 ); } 731 //{ $$ = new StatementNode( StatementNode::Switch, $3, $5 ); } 732 { $$ = new StatementNode2( build_switch( $3, $5 ) ); } 717 733 | SWITCH '(' comma_expression ')' '{' push declaration_list_opt switch_clause_list_opt '}' // CFA 718 734 { 719 StatementNode *sw = new StatementNode ( StatementNode::Switch, $3, $8);735 StatementNode *sw = new StatementNode2( build_switch( $3, $8 ) ); 720 736 // The semantics of the declaration list is changed to include associated initialization, which is performed 721 737 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 726 742 } 727 743 | CHOOSE '(' comma_expression ')' case_clause // CFA 728 { $$ = new StatementNode( StatementNode::Switch, $3, $5 ); } 744 //{ $$ = new StatementNode( StatementNode::Switch, $3, $5 ); } 745 { $$ = new StatementNode2( build_switch( $3, $5 ) ); } 729 746 | CHOOSE '(' comma_expression ')' '{' push declaration_list_opt choose_clause_list_opt '}' // CFA 730 747 { 731 StatementNode *sw = new StatementNode( StatementNode::Switch, $3, $8 ); 748 //StatementNode *sw = new StatementNode( StatementNode::Switch, $3, $8 ); 749 StatementNode *sw = new StatementNode2( build_switch( $3, $8 ) ); 732 750 $$ = $7 != 0 ? new CompoundStmtNode( (StatementNode *)((new StatementNode( $7 ))->set_link( sw )) ) : sw; 733 751 } … … 740 758 constant_expression { $$ = $1; } 741 759 | constant_expression ELLIPSIS constant_expression // GCC, subrange 742 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range,$1, $3 ) ); }760 { $$ = new ExpressionNode( build_range( $1, $3 ) ); } 743 761 | subrange // CFA, subrange 744 762 ; … … 810 828 iteration_statement: 811 829 WHILE '(' comma_expression ')' statement 812 { $$ = new StatementNode ( StatementNode::While, $3, $5); }830 { $$ = new StatementNode2( build_while( $3, $5 ) ); } 813 831 | DO statement WHILE '(' comma_expression ')' ';' 814 { $$ = new StatementNode ( StatementNode::Do, $5, $2); }832 { $$ = new StatementNode2( build_while( $5, $2 ) ); } 815 833 | FOR '(' push for_control_expression ')' statement 816 { $$ = new StatementNode ( StatementNode::For, $4, $6); }834 { $$ = new StatementNode2( build_for( $4, $6 ) ); } 817 835 ; 818 836 819 837 for_control_expression: 820 838 comma_expression_opt pop ';' comma_expression_opt ';' comma_expression_opt 821 { $$ = new ForCtl ExprNode( $1, $4, $6 ); }839 { $$ = new ForCtl( $1, $4, $6 ); } 822 840 | declaration comma_expression_opt ';' comma_expression_opt // C99 823 { $$ = new ForCtl ExprNode( $1, $2, $4 ); }824 ;841 { $$ = new ForCtl( $1, $2, $4 ); } 842 ; 825 843 826 844 jump_statement: … … 936 954 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $4, $6, $8, $10 ); } 937 955 | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';' 938 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $5, 0, $8, $10, $12 ); }956 { $$ = new AsmStmtNode( StatementNode::Asm, $2, $5, 0, $8, $10, $12 ); } 939 957 ; 940 958 … … 960 978 asm_operand: // GCC 961 979 string_literal_list '(' constant_expression ')' 962 { $$ = new AsmExprNode( 0, $1, $3); }980 { $$ = new ExpressionNode( build_asm( 0, $1, $3 ) ); } 963 981 | '[' constant_expression ']' string_literal_list '(' constant_expression ')' 964 { $$ = new AsmExprNode( $2, $4, $6); }982 { $$ = new ExpressionNode( build_asm( $2, $4, $6 ) ); } 965 983 ; 966 984 … … 969 987 { $$ = 0; } // use default argument 970 988 | string_literal_list 971 { $$ = $1; }989 { $$ = new ExpressionNode( $1 ); } 972 990 | asm_clobbers_list_opt ',' string_literal_list 973 { $$ = (ConstantNode *)$1->set_link( $3); }991 { $$ = (ExpressionNode *)$1->set_link( new ExpressionNode( $3 ) ); } 974 992 ; 975 993 … … 1758 1776 designator_list ':' // C99, CFA uses ":" instead of "=" 1759 1777 | no_attr_identifier_or_type_name ':' // GCC, field name 1760 { $$ = new VarRefNode( $1); }1778 { $$ = new ExpressionNode( build_varref( $1 ) ); } 1761 1779 ; 1762 1780 … … 1764 1782 designator 1765 1783 | designator_list designator 1766 { $$ = (ExpressionNode *)( $1->set_link( $2 ) ); }1767 //| designator_list designator { $$ = new CompositeExprNode( $1, $2 ); }1784 { $$ = (ExpressionNode *)( $1->set_link( $2 ) ); } 1785 //| designator_list designator { $$ = new ExpressionNode( $1, $2 ); } 1768 1786 ; 1769 1787 1770 1788 designator: 1771 // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0 only ".0" and ".1" 1772 // allowed => semantic check 1773 FLOATINGconstant 1774 { $$ = new DesignatorNode( new VarRefNode( $1 ) ); } 1775 | '.' no_attr_identifier_or_type_name // C99, field name 1776 { $$ = new DesignatorNode( new VarRefNode( $2 ) ); } 1789 '.' no_attr_identifier_or_type_name // C99, field name 1790 { $$ = new ExpressionNode( build_varref( $2 ) ); } 1777 1791 | '[' push assignment_expression pop ']' // C99, single array element 1778 1792 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple. 1779 { $$ = new DesignatorNode( $3, true ); }1793 { $$ = $3; } 1780 1794 | '[' push subrange pop ']' // CFA, multiple array elements 1781 { $$ = new DesignatorNode( $3, true ); }1795 { $$ = $3; } 1782 1796 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1783 { $$ = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, $3, $5 ) ), true); }1797 { $$ = new ExpressionNode( build_range( $3, $5 ) ); } 1784 1798 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1785 { $$ = new DesignatorNode( $4 ); }1799 { $$ = $4; } 1786 1800 ; 1787 1801 … … 1871 1885 type_name_list: // CFA 1872 1886 type_name 1873 { $$ = new TypeValueNode( $1); }1887 { $$ = new ExpressionNode( build_typevalue( $1 ) ); } 1874 1888 | assignment_expression 1875 1889 | type_name_list ',' type_name 1876 { $$ = (ExpressionNode *)( $1->set_link( new TypeValueNode( $3 ))); }1890 { $$ = (ExpressionNode *)( $1->set_link( new ExpressionNode( build_typevalue( $3 ) ) ) ); } 1877 1891 | type_name_list ',' assignment_expression 1878 1892 { $$ = (ExpressionNode *)( $1->set_link( $3 )); } … … 2110 2124 subrange: 2111 2125 constant_expression '~' constant_expression // CFA, integer subrange 2112 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range,$1, $3 ) ); }2126 { $$ = new ExpressionNode( build_range( $1, $3 ) ); } 2113 2127 ; 2114 2128 -
src/SynTree/Expression.cc
rf18a711 r3078643 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 3 17:06:51201613 // Update Count : 4 512 // Last Modified On : Fri Aug 5 14:23:56 2016 13 // Update Count : 49 14 14 // 15 15 … … 529 529 } 530 530 531 RangeExpr::RangeExpr( ConstantExpr *low, ConstantExpr*high ) : low( low ), high( high ) {}531 RangeExpr::RangeExpr( Expression *low, Expression *high ) : low( low ), high( high ) {} 532 532 RangeExpr::RangeExpr( const RangeExpr &other ) : low( other.low->clone() ), high( other.high->clone() ) {} 533 533 void RangeExpr::print( std::ostream &os, int indent ) const { -
src/SynTree/Expression.h
rf18a711 r3078643 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 3 17:08:44201613 // Update Count : 2712 // Last Modified On : Sat Aug 6 08:52:53 2016 13 // Update Count : 35 14 14 // 15 15 … … 28 28 class Expression { 29 29 public: 30 Expression( Expression *_aname = 0);30 Expression( Expression *_aname = nullptr ); 31 31 Expression( const Expression &other ); 32 32 virtual ~Expression(); … … 70 70 typedef std::map< UniqueId, ParamEntry > InferredParams; 71 71 72 /// ApplicationExpr represents the application of a function to a set of parameters. This is the 73 /// result of running anUntypedExpr through the expression analyzer.72 /// ApplicationExpr represents the application of a function to a set of parameters. This is the result of running an 73 /// UntypedExpr through the expression analyzer. 74 74 class ApplicationExpr : public Expression { 75 75 public: … … 93 93 }; 94 94 95 /// UntypedExpr represents the application of a function to a set of parameters, but where the 96 /// particular overload for the function name has not yet been determined. Most operators are97 /// converted into functional form automatically, topermit operator overloading.95 /// UntypedExpr represents the application of a function to a set of parameters, but where the particular overload for 96 /// the function name has not yet been determined. Most operators are converted into functional form automatically, to 97 /// permit operator overloading. 98 98 class UntypedExpr : public Expression { 99 99 public: 100 UntypedExpr( Expression *function, Expression *_aname = 0);100 UntypedExpr( Expression *function, Expression *_aname = nullptr ); 101 101 UntypedExpr( const UntypedExpr &other ); 102 UntypedExpr( Expression *function, std::list<Expression *> &args, Expression *_aname = 0);102 UntypedExpr( Expression *function, std::list<Expression *> &args, Expression *_aname = nullptr ); 103 103 virtual ~UntypedExpr(); 104 104 … … 124 124 class NameExpr : public Expression { 125 125 public: 126 NameExpr( std::string name, Expression *_aname = 0);126 NameExpr( std::string name, Expression *_aname = nullptr ); 127 127 NameExpr( const NameExpr &other ); 128 128 virtual ~NameExpr(); … … 145 145 class AddressExpr : public Expression { 146 146 public: 147 AddressExpr( Expression *arg, Expression *_aname = 0);147 AddressExpr( Expression *arg, Expression *_aname = nullptr ); 148 148 AddressExpr( const AddressExpr &other ); 149 149 virtual ~AddressExpr(); … … 181 181 class CastExpr : public Expression { 182 182 public: 183 CastExpr( Expression *arg, Expression *_aname = 0);184 CastExpr( Expression *arg, Type *toType, Expression *_aname = 0);183 CastExpr( Expression *arg, Expression *_aname = nullptr ); 184 CastExpr( Expression *arg, Type *toType, Expression *_aname = nullptr ); 185 185 CastExpr( const CastExpr &other ); 186 186 virtual ~CastExpr(); … … 200 200 class UntypedMemberExpr : public Expression { 201 201 public: 202 UntypedMemberExpr( std::string member, Expression *aggregate, Expression *_aname = 0);202 UntypedMemberExpr( std::string member, Expression *aggregate, Expression *_aname = nullptr ); 203 203 UntypedMemberExpr( const UntypedMemberExpr &other ); 204 204 virtual ~UntypedMemberExpr(); … … 221 221 class MemberExpr : public Expression { 222 222 public: 223 MemberExpr( DeclarationWithType *member, Expression *aggregate, Expression *_aname = 0);223 MemberExpr( DeclarationWithType *member, Expression *aggregate, Expression *_aname = nullptr ); 224 224 MemberExpr( const MemberExpr &other ); 225 225 virtual ~MemberExpr(); … … 242 242 class VariableExpr : public Expression { 243 243 public: 244 VariableExpr( DeclarationWithType *var, Expression *_aname = 0);244 VariableExpr( DeclarationWithType *var, Expression *_aname = nullptr ); 245 245 VariableExpr( const VariableExpr &other ); 246 246 virtual ~VariableExpr(); … … 260 260 class ConstantExpr : public Expression { 261 261 public: 262 ConstantExpr( Constant constant, Expression *_aname = 0);262 ConstantExpr( Constant constant, Expression *_aname = nullptr ); 263 263 ConstantExpr( const ConstantExpr &other ); 264 264 virtual ~ConstantExpr(); … … 278 278 class SizeofExpr : public Expression { 279 279 public: 280 SizeofExpr( Expression *expr, Expression *_aname = 0);280 SizeofExpr( Expression *expr, Expression *_aname = nullptr ); 281 281 SizeofExpr( const SizeofExpr &other ); 282 SizeofExpr( Type *type, Expression *_aname = 0);282 SizeofExpr( Type *type, Expression *_aname = nullptr ); 283 283 virtual ~SizeofExpr(); 284 284 … … 303 303 class AlignofExpr : public Expression { 304 304 public: 305 AlignofExpr( Expression *expr, Expression *_aname = 0);305 AlignofExpr( Expression *expr, Expression *_aname = nullptr ); 306 306 AlignofExpr( const AlignofExpr &other ); 307 AlignofExpr( Type *type, Expression *_aname = 0);307 AlignofExpr( Type *type, Expression *_aname = nullptr ); 308 308 virtual ~AlignofExpr(); 309 309 … … 328 328 class UntypedOffsetofExpr : public Expression { 329 329 public: 330 UntypedOffsetofExpr( Type *type, const std::string &member, Expression *_aname = 0);330 UntypedOffsetofExpr( Type *type, const std::string &member, Expression *_aname = nullptr ); 331 331 UntypedOffsetofExpr( const UntypedOffsetofExpr &other ); 332 332 virtual ~UntypedOffsetofExpr(); … … 349 349 class OffsetofExpr : public Expression { 350 350 public: 351 OffsetofExpr( Type *type, DeclarationWithType *member, Expression *_aname = 0);351 OffsetofExpr( Type *type, DeclarationWithType *member, Expression *_aname = nullptr ); 352 352 OffsetofExpr( const OffsetofExpr &other ); 353 353 virtual ~OffsetofExpr(); … … 390 390 class AttrExpr : public Expression { 391 391 public: 392 AttrExpr(Expression *attr, Expression *expr, Expression *_aname = 0);392 AttrExpr(Expression *attr, Expression *expr, Expression *_aname = nullptr ); 393 393 AttrExpr( const AttrExpr &other ); 394 AttrExpr( Expression *attr, Type *type, Expression *_aname = 0);394 AttrExpr( Expression *attr, Type *type, Expression *_aname = nullptr ); 395 395 virtual ~AttrExpr(); 396 396 … … 418 418 class LogicalExpr : public Expression { 419 419 public: 420 LogicalExpr( Expression *arg1, Expression *arg2, bool andp = true, Expression *_aname = 0);420 LogicalExpr( Expression *arg1, Expression *arg2, bool andp = true, Expression *_aname = nullptr ); 421 421 LogicalExpr( const LogicalExpr &other ); 422 422 virtual ~LogicalExpr(); … … 441 441 class ConditionalExpr : public Expression { 442 442 public: 443 ConditionalExpr( Expression *arg1, Expression *arg2, Expression *arg3, Expression *_aname = 0);443 ConditionalExpr( Expression *arg1, Expression *arg2, Expression *arg3, Expression *_aname = nullptr ); 444 444 ConditionalExpr( const ConditionalExpr &other ); 445 445 virtual ~ConditionalExpr(); … … 465 465 class CommaExpr : public Expression { 466 466 public: 467 CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname = 0);467 CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname = nullptr ); 468 468 CommaExpr( const CommaExpr &other ); 469 469 virtual ~CommaExpr(); … … 486 486 class TupleExpr : public Expression { 487 487 public: 488 TupleExpr( Expression *_aname = 0);488 TupleExpr( Expression *_aname = nullptr ); 489 489 TupleExpr( const TupleExpr &other ); 490 490 virtual ~TupleExpr(); … … 504 504 class SolvedTupleExpr : public Expression { 505 505 public: 506 SolvedTupleExpr( Expression *_aname = 0) : Expression( _aname ) {}507 SolvedTupleExpr( std::list<Expression *> &, Expression *_aname = 0);506 SolvedTupleExpr( Expression *_aname = nullptr ) : Expression( _aname ) {} 507 SolvedTupleExpr( std::list<Expression *> &, Expression *_aname = nullptr ); 508 508 SolvedTupleExpr( const SolvedTupleExpr &other ); 509 509 virtual ~SolvedTupleExpr() {} … … 598 598 class UntypedValofExpr : public Expression { 599 599 public: 600 UntypedValofExpr( Statement *_body, Expression *_aname = 0) : Expression( _aname ), body ( _body ) {}600 UntypedValofExpr( Statement *_body, Expression *_aname = nullptr ) : Expression( _aname ), body ( _body ) {} 601 601 UntypedValofExpr( const UntypedValofExpr & other ); 602 602 virtual ~UntypedValofExpr(); … … 637 637 class RangeExpr : public Expression { 638 638 public: 639 RangeExpr( ConstantExpr *low, ConstantExpr*high );639 RangeExpr( Expression *low, Expression *high ); 640 640 RangeExpr( const RangeExpr &other ); 641 641 642 ConstantExpr * get_low() const { return low.get(); }643 ConstantExpr * get_high() const { return high.get(); }644 RangeExpr * set_low( ConstantExpr *low ) { RangeExpr::low.reset( low ); return this; }645 RangeExpr * set_high( ConstantExpr *high ) { RangeExpr::high.reset( high ); return this; }642 Expression * get_low() const { return low; } 643 Expression * get_high() const { return high; } 644 RangeExpr * set_low( Expression *low ) { RangeExpr::low = low; return this; } 645 RangeExpr * set_high( Expression *high ) { RangeExpr::high = high; return this; } 646 646 647 647 virtual RangeExpr *clone() const { return new RangeExpr( *this ); } … … 650 650 virtual void print( std::ostream &os, int indent = 0 ) const; 651 651 private: 652 std::unique_ptr<ConstantExpr> low,high;652 Expression *low, *high; 653 653 }; 654 654 -
src/SynTree/Label.h
rf18a711 r3078643 9 9 // Author : Rob Schluntz 10 10 // Created On : Wed Jun 8 12:53:12 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 8 12:53:28201613 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 7 14:44:29 2016 13 // Update Count : 2 14 14 // 15 15 -
src/driver/cfa.cc
rf18a711 r3078643 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Aug 2 12:23:11201613 // Update Count : 14 712 // Last Modified On : Sat Aug 6 16:14:55 2016 13 // Update Count : 148 14 14 // 15 15 … … 87 87 bool cpp_flag = false; // -E or -M flag, preprocessor only 88 88 bool std_flag = false; // -std= flag 89 bool noincstd_flag = false; // -no-include-std = flag89 bool noincstd_flag = false; // -no-include-stdhdr= flag 90 90 bool debugging __attribute(( unused )) = false; // -g flag 91 91 … … 145 145 } else if ( arg == "-nohelp" ) { 146 146 help = false; // strip the nohelp flag 147 } else if ( arg == "-no-include-std " ) {148 noincstd_flag = true; // strip the no-include-std flag147 } else if ( arg == "-no-include-stdhdr" ) { 148 noincstd_flag = true; // strip the no-include-stdhdr flag 149 149 } else if ( arg == "-compiler" ) { 150 150 // use the user specified compiler -
src/examples/gc_no_raii/src/gc.h
rf18a711 r3078643 7 7 static inline gcpointer(T) gcmalloc() 8 8 { 9 gcpointer(T) ptr; 10 void* address = gc_allocate(sizeof(T)); 11 (&ptr){ address }; 12 ctor(&ptr, address); 9 gcpointer(T) ptr = { gc_allocate(sizeof(T)) }; 10 ptr{}; 13 11 gc_conditional_collect(); 14 12 return ptr; 15 13 } 14 15 forall(otype T) 16 static inline void gcmalloc(gcpointer(T)* ptr) 17 { 18 ptr{ gc_allocate(sizeof(T)) }; 19 (*ptr){}; 20 gc_conditional_collect(); 21 } -
src/examples/gc_no_raii/test/gctest.c
rf18a711 r3078643 8 8 sout | "Bonjour au monde!\n"; 9 9 10 gcpointer(int) anInt = gcmalloc(); 10 for(int i = 0; i < 1000000; i++) { 11 gcpointer(int) anInt; 12 gcmalloc(&anInt); 13 } 11 14 } -
src/libcfa/Makefile.am
rf18a711 r3078643 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Tue Aug 2 12:17:23201614 ## Update Count : 19 613 ## Last Modified On : Sat Aug 6 16:15:15 2016 14 ## Update Count : 197 15 15 ############################################################################### 16 16 … … 53 53 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $< 54 54 55 CFLAGS = -quiet -no-include-std -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O255 CFLAGS = -quiet -no-include-stdhdr -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 56 56 CC = ${abs_top_srcdir}/src/driver/cfa 57 57 -
src/libcfa/Makefile.in
rf18a711 r3078643 136 136 CFA_LIBDIR = @CFA_LIBDIR@ 137 137 CFA_PREFIX = @CFA_PREFIX@ 138 CFLAGS = -quiet -no-include-std -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2138 CFLAGS = -quiet -no-include-stdhdr -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2 139 139 CPP = @CPP@ 140 140 CPPFLAGS = @CPPFLAGS@ -
src/main.cc
rf18a711 r3078643 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 5 15:23:11 201613 // Update Count : 2 0912 // Last Modified On : Sat Aug 6 16:17:41 2016 13 // Update Count : 210 14 14 // 15 15 … … 193 193 input = fopen( argv[ optind ], "r" ); 194 194 if ( ! input ) { 195 std::cout << "Error: can 't open " << argv[ optind ] << std::endl;195 std::cout << "Error: cannot open " << argv[ optind ] << std::endl; 196 196 exit( EXIT_FAILURE ); 197 197 } // if … … 219 219 FILE * builtins = fopen( libcfap | treep ? "builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" ); 220 220 if ( builtins == NULL ) { 221 std::cerr << "Error: can 't open builtins.cf" << std::endl;221 std::cerr << "Error: cannot open builtins.cf" << std::endl; 222 222 exit( EXIT_FAILURE ); 223 223 } // if … … 227 227 FILE * extras = fopen( libcfap | treep ? "extras.cf" : CFA_LIBDIR "/extras.cf", "r" ); 228 228 if ( extras == NULL ) { 229 std::cerr << "Error: can 't open extras.cf" << std::endl;229 std::cerr << "Error: cannot open extras.cf" << std::endl; 230 230 exit( EXIT_FAILURE ); 231 231 } // if … … 236 236 FILE * prelude = fopen( treep ? "prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" ); 237 237 if ( prelude == NULL ) { 238 std::cerr << "Error: can 't open prelude.cf" << std::endl;238 std::cerr << "Error: cannot open prelude.cf" << std::endl; 239 239 exit( EXIT_FAILURE ); 240 240 } // if -
src/tests/Makefile.am
rf18a711 r3078643 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Sat Jul 9 11:23:24201614 ## Update Count : 3 513 ## Last Modified On : Tue Aug 9 15:34:57 2016 14 ## Update Count : 38 15 15 ############################################################################### 16 16 … … 27 27 28 28 all-local : 29 +python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once29 @+python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once 30 30 31 31 all-tests : 32 +python test.py --all32 @+python test.py --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program 33 33 34 34 clean-local : 35 -rm -f ${EXTRA_PROGRAMS}35 rm -f ${EXTRA_PROGRAMS} 36 36 37 37 list : 38 +python test.py --list38 @+python test.py --list 39 39 40 40 constant0-1DP : constant0-1.c -
src/tests/Makefile.in
rf18a711 r3078643 635 635 636 636 all-local : 637 +python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once637 @+python test.py vector_test avl_test operators numericConstants expression enum asmName array typeof cast dtor-early-exit init_once 638 638 639 639 all-tests : 640 +python test.py --all640 @+python test.py --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program 641 641 642 642 clean-local : 643 -rm -f ${EXTRA_PROGRAMS}643 rm -f ${EXTRA_PROGRAMS} 644 644 645 645 list : 646 +python test.py --list646 @+python test.py --list 647 647 648 648 constant0-1DP : constant0-1.c -
src/tests/labelledExit.c
rf18a711 r3078643 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // labelledExit.c -- 8 // 9 // Author : Peter A. Buhr 10 // Created On : Wed Aug 10 07:29:39 2016 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 10 07:30:15 2016 13 // Update Count : 1 14 // 15 1 16 int foo() { 2 17 int i; … … 136 151 else 137 152 i += 1; 138 139 153 } 140 154 141 int main( int argc, char const *argv[]) {155 int main( int argc, char const *argv[] ) { 142 156 /* code */ 143 return 0;144 157 } 145 158 146 159 // Local Variables: // 147 160 // tab-width: 4 // 148 // compile-command: "cfa LabelledExit.c" //161 // compile-command: "cfa labelledExit.c" // 149 162 // End: //
Note:
See TracChangeset
for help on using the changeset viewer.