Changeset 59db689
- Timestamp:
- Jun 6, 2015, 11:38:58 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- cd623a4
- Parents:
- a65d92e
- Location:
- src
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 3 11:54:32201513 // Update Count : 1412 // Last Modified On : Sat Jun 6 23:29:13 2015 13 // Update Count : 23 14 14 // 15 15 … … 74 74 75 75 void DeclarationNode::print( std::ostream &os, int indent ) const { 76 os << string( indent, ' ' );76 os << string( indent, ' ' ); 77 77 if ( name == "" ) { 78 78 os << "unnamed: "; … … 93 93 94 94 if ( bitfieldWidth ) { 95 os << endl << string( indent+2, ' ') << "with bitfield width ";95 os << endl << string( indent + 2, ' ' ) << "with bitfield width "; 96 96 bitfieldWidth->printOneLine( os ); 97 97 } 98 98 99 99 if ( initializer != 0 ) { 100 os << endl << string( indent+2, ' ') << "with initializer ";100 os << endl << string( indent + 2, ' ' ) << "with initializer "; 101 101 initializer->printOneLine( os ); 102 102 } … … 161 161 } 162 162 163 DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) {163 DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) { 164 164 DeclarationNode *newnode = new DeclarationNode; 165 165 newnode->type = new TypeData( TypeData::Unknown ); … … 168 168 } 169 169 170 DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) {170 DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) { 171 171 DeclarationNode *newnode = new DeclarationNode; 172 172 newnode->type = new TypeData( TypeData::SymbolicInst ); … … 177 177 } 178 178 179 DeclarationNode *DeclarationNode::newAggregate( TyCon kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {179 DeclarationNode *DeclarationNode::newAggregate( TyCon kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) { 180 180 DeclarationNode *newnode = new DeclarationNode; 181 181 newnode->type = new TypeData( TypeData::Aggregate ); … … 203 203 } 204 204 205 DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) {205 DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) { 206 206 DeclarationNode *newnode = new DeclarationNode; 207 207 newnode->name = assign_strptr( name ); … … 210 210 } 211 211 212 DeclarationNode *DeclarationNode::newName( std::string *name ) {212 DeclarationNode *DeclarationNode::newName( std::string *name ) { 213 213 DeclarationNode *newnode = new DeclarationNode; 214 214 newnode->name = assign_strptr( name ); … … 216 216 } 217 217 218 DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) {218 DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) { 219 219 DeclarationNode *newnode = new DeclarationNode; 220 220 newnode->type = new TypeData( TypeData::SymbolicInst ); … … 225 225 } 226 226 227 DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) {227 DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) { 228 228 DeclarationNode *newnode = new DeclarationNode; 229 229 newnode->name = assign_strptr( name ); … … 467 467 } 468 468 469 DeclarationNode *DeclarationNode::addAssertions( DeclarationNode *assertions ) {469 DeclarationNode *DeclarationNode::addAssertions( DeclarationNode *assertions ) { 470 470 assert( type ); 471 471 switch ( type->kind ) { … … 493 493 } 494 494 495 DeclarationNode *DeclarationNode::addName( std::string *newname ) {495 DeclarationNode *DeclarationNode::addName( std::string *newname ) { 496 496 name = assign_strptr( newname ); 497 497 return this; … … 758 758 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ) { 759 759 SemanticError errors; 760 std::back_insert_iterator< std::list< Declaration *> > out( outputList );760 std::back_insert_iterator< std::list< Declaration *> > out( outputList ); 761 761 const DeclarationNode *cur = firstNode; 762 762 while ( cur ) { … … 776 776 errors.append( e ); 777 777 } // try 778 cur = dynamic_cast< DeclarationNode *>( cur->get_link() );778 cur = dynamic_cast< DeclarationNode *>( cur->get_link() ); 779 779 } // while 780 780 if ( ! errors.isEmpty() ) { … … 783 783 } 784 784 785 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType *> &outputList ) {785 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType *> &outputList ) { 786 786 SemanticError errors; 787 std::back_insert_iterator< std::list< DeclarationWithType *> > out( outputList );787 std::back_insert_iterator< std::list< DeclarationWithType *> > out( outputList ); 788 788 const DeclarationNode *cur = firstNode; 789 789 while ( cur ) { … … 799 799 Declaration *decl = cur->build(); 800 800 if ( decl ) { 801 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType *>( decl ) ) {801 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType *>( decl ) ) { 802 802 *out++ = dwt; 803 } else if ( StructDecl *agg = dynamic_cast< StructDecl *>( decl ) ) {803 } else if ( StructDecl *agg = dynamic_cast< StructDecl *>( decl ) ) { 804 804 StructInstType *inst = new StructInstType( Type::Qualifiers(), agg->get_name() ); 805 805 *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 ); 806 806 delete agg; 807 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl *>( decl ) ) {807 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl *>( decl ) ) { 808 808 UnionInstType *inst = new UnionInstType( Type::Qualifiers(), agg->get_name() ); 809 809 *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 ); … … 813 813 errors.append( e ); 814 814 } // try 815 cur = dynamic_cast< DeclarationNode *>( cur->get_link() );815 cur = dynamic_cast< DeclarationNode *>( cur->get_link() ); 816 816 } // while 817 817 if ( ! errors.isEmpty() ) { … … 820 820 } 821 821 822 void buildTypeList( const DeclarationNode *firstNode, std::list< Type *> &outputList ) {822 void buildTypeList( const DeclarationNode *firstNode, std::list< Type *> &outputList ) { 823 823 SemanticError errors; 824 std::back_insert_iterator< std::list< Type *> > out( outputList );824 std::back_insert_iterator< std::list< Type *> > out( outputList ); 825 825 const DeclarationNode *cur = firstNode; 826 826 while ( cur ) { … … 830 830 errors.append( e ); 831 831 } // try 832 cur = dynamic_cast< DeclarationNode *>( cur->get_link() );832 cur = dynamic_cast< DeclarationNode *>( cur->get_link() ); 833 833 } // while 834 834 if ( ! errors.isEmpty() ) { -
src/Parser/ExpressionNode.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 5 07:44:47201513 // Update Count : 1 012 // Last Modified On : Sat Jun 6 23:18:19 2015 13 // Update Count : 128 14 14 // 15 15 … … 17 17 #include <cctype> 18 18 #include <algorithm> 19 #include <sstream> 20 #include <cstdio> 21 #include <climits> 19 22 20 23 #include "ParseNode.h" 21 #include "SynTree/Type.h"22 24 #include "SynTree/Constant.h" 23 25 #include "SynTree/Expression.h" 24 #include "SynTree/Declaration.h"25 26 #include "UnimplementedError.h" 26 27 #include "parseutility.h" … … 31 32 ExpressionNode::ExpressionNode() : ParseNode(), argName( 0 ) {} 32 33 33 ExpressionNode::ExpressionNode( string *name_) : ParseNode( *name_ ), argName( 0 ) { 34 delete name_; 35 } 34 ExpressionNode::ExpressionNode( const string *name_ ) : ParseNode( name_ ), argName( 0 ) {} 36 35 37 36 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) { … … 43 42 } 44 43 45 ExpressionNode * ExpressionNode::set_asArgName( std::string *aName ) {44 ExpressionNode * ExpressionNode::set_asArgName( const std::string *aName ) { 46 45 argName = new VarRefNode( aName ); 47 46 return this; … … 55 54 void ExpressionNode::printDesignation( std::ostream &os, int indent ) const { 56 55 if ( argName ) { 57 os << string( ' ', indent) << "(designated by: ";56 os << string( indent, ' ' ) << "(designated by: "; 58 57 argName->printOneLine( os, indent ); 59 58 os << ")" << std::endl; … … 85 84 } 86 85 87 // enum ConstantNode::Type = { Integer, Float, Character, String, Range } 88 89 ConstantNode::ConstantNode( void ) : ExpressionNode(), sign( true ), longs(0), size(0) {} 90 91 ConstantNode::ConstantNode( string *name_) : ExpressionNode( name_), sign( true ), longs(0), size(0) {} 92 93 ConstantNode::ConstantNode( Type t, string *inVal ) : type( t ), sign( true ), longs(0), size(0) { 94 if ( inVal ) { 95 value = *inVal; 96 delete inVal; 97 } else { 98 value = ""; 99 } // if 100 101 classify( value ); 102 } 103 104 ConstantNode::ConstantNode( const ConstantNode &other ) : ExpressionNode( other ), type( other.type ), value( other.value ), sign( other.sign ), 105 base( other.base ), longs( other.longs ), size( other.size ) { 106 } 107 108 // for some reason, std::tolower doesn't work as an argument to std::transform in g++ 3.1 109 inline char tolower_hack( char c ) { 110 return std::tolower( c ); 111 } 112 113 void ConstantNode::classify( std::string &str ) { 86 static inline bool checku( char c ) { return c == 'u' || c == 'U'; } 87 static inline bool checkl( char c ) { return c == 'l' || c == 'L'; } 88 static inline bool checkf( char c ) { return c == 'f' || c == 'F'; } 89 static inline bool checkx( char c ) { return c == 'x' || c == 'X'; } 90 91 ConstantNode::ConstantNode( Type t, string *inVal ) : type( t ), value( *inVal ) { 114 92 switch ( type ) { 115 case Integer:116 93 case Float: 117 94 { 118 std::string sfx(""); 119 char c; 120 int i = str.length() - 1; 121 122 while ( i >= 0 && ! isxdigit( c = str.at( i--)) ) 123 sfx += c; 124 125 value = str.substr( 0, i + 2 ); 126 127 // get rid of underscores 128 value.erase( remove( value.begin(), value.end(), '_'), value.end()); 129 130 std::transform( sfx.begin(), sfx.end(), sfx.begin(), tolower_hack ); 131 132 if ( sfx.find("ll") != string::npos ) { 133 longs = 2; 134 } else if ( sfx.find("l") != string::npos ) { 135 longs = 1; 95 size_t len = value.length() - 1; 96 97 btype = BasicType::Double; // default 98 if ( checkf( value[len] ) ) { 99 btype = BasicType::Float; 136 100 } // if 137 138 assert(( longs >= 0) && ( longs <= 2)); 139 140 if ( sfx.find("u") != string::npos ) 141 sign = false; 142 101 if ( checkl( value[len] ) ) { 102 btype = BasicType::LongDouble; 103 } // if 104 break; 105 } 106 case Integer: 107 { 108 static const BasicType::Kind kind[2][3] = { 109 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, 110 { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt }, 111 }; 112 size_t last = value.length() - 1; // last character of constant 113 unsigned long long v; // converted integral value 114 bool dec = true, Unsigned = false; // decimal, unsigned constant 115 int size; // 0 => int, 1 => long, 2 => long long 116 117 if ( value[0] == '0' ) { // octal ? 118 dec = false; 119 if ( last != 0 && checkx( value[1] ) ) { // hex ? 120 sscanf( (char *)value.c_str(), "%llx", &v ); 121 //printf( "%llx %llu\n", v, v ); 122 } else { 123 sscanf( (char *)value.c_str(), "%llo", &v ); 124 //printf( "%llo %llu\n", v, v ); 125 } // if 126 } else { // decimal ? 127 sscanf( (char *)value.c_str(), "%lld", &v ); 128 //printf( "%llu %llu\n", v, v ); 129 } // if 130 131 if ( v <= INT_MAX ) { // signed int 132 size = 0; 133 } else if ( v <= UINT_MAX ) { // unsigned int 134 size = 0; 135 if ( ! dec ) Unsigned = true; // unsigned 136 } else if ( v <= LONG_MAX ) { // signed long int 137 size = 1; 138 } else if ( v <= ULONG_MAX ) { // signed long int 139 size = 1; 140 if ( ! dec ) Unsigned = true; // unsigned long int 141 } else if ( v <= LLONG_MAX ) { // signed long long int 142 size = 2; 143 } else { // signed long long int 144 size = 2; 145 if ( ! dec ) Unsigned = true; // unsigned long long int 146 } // if 147 148 if ( checku( value[last] ) ) { // suffix 'u' ? 149 Unsigned = true; 150 if ( checkl( value[ last - 1 ] ) ) { // suffix 'l' ? 151 size = 1; 152 if ( checkl( value[ last - 1 ] ) ) { // suffix 'll' ? 153 size = 2; 154 } // if 155 } // if 156 } else if ( checkl( value[ last ] ) ) { // suffix 'l' ? 157 size = 1; 158 if ( checkl( value[ last - 1 ] ) ) { // suffix 'll' ? 159 size = 2; 160 } // if 161 if ( checku( value[ last - 1 ] ) ) { // suffix 'u' ? 162 Unsigned = true; 163 } // if 164 } // if 165 btype = kind[Unsigned][size]; // loopup type of constant 143 166 break; 144 167 } 145 168 case Character: 146 { 147 // remove underscores from hex and oct escapes 148 if ( str.substr(1,2) == "\\x") 149 value.erase( remove( value.begin(), value.end(), '_'), value.end()); 150 151 break; 152 } 153 default: 154 // shouldn't be here 155 ; 156 } 157 } 169 btype = BasicType::Char; // default 170 if ( string( "LUu" ).find( value[0] ) != string::npos ) { 171 // ??? 172 } // if 173 break; 174 case String: 175 // array of char 176 if ( string( "LUu" ).find( value[0] ) != string::npos ) { 177 if ( value[0] == 'u' && value[1] == '8' ) { 178 // ??? 179 } else { 180 // ??? 181 } // if 182 } // if 183 break; 184 } // switch 185 } // ConstantNode::ConstantNode 158 186 159 187 ConstantNode::Type ConstantNode::get_type( void ) const { … … 161 189 } 162 190 163 ConstantNode *ConstantNode::append( std::string *newValue ) { 164 if ( newValue ) { 165 if ( type == String ) { 166 std::string temp = *newValue; 167 value.resize( value.size() - 1 ); 168 value += newValue->substr(1, newValue->size()); 169 } else 170 value += *newValue; 171 172 delete newValue; 173 } // if 191 ConstantNode *ConstantNode::appendstr( const std::string *newValue ) { 192 assert( newValue != 0 ); 193 assert( type == String ); 194 195 //printf( "%lu \"%s\" \"%s\"\n", value.length() - 1, value.c_str(), newValue->substr( 1, newValue->length() - 2 ).c_str() ); 196 value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) ); 197 198 delete newValue; // allocated by yacc 174 199 return this; 175 200 } 176 201 177 202 void ConstantNode::printOneLine( std::ostream &os, int indent ) const { 178 os << string( indent, ' ' );203 os << string( indent, ' ' ); 179 204 printDesignation( os ); 180 205 181 206 switch ( type ) { 182 207 case Integer: 183 os << value ;184 break;185 208 case Float: 186 209 os << value ; … … 206 229 BasicType *bt; 207 230 208 switch ( get_type()) { 209 case Integer: 210 /* Cfr. standard 6.4.4.1 */ 211 //bt.set_kind( BasicType::SignedInt ); 212 bt = new BasicType( q, BasicType::SignedInt ); 213 break; 214 case Float: 215 // floating-point constants are type double 216 bt = new BasicType( q, BasicType::Double ); 217 break; 218 case Character: 219 bt = new BasicType( q, BasicType::Char ); 220 break; 231 switch ( get_type() ) { 221 232 case String: 222 // string should probably be a primitive type 223 ArrayType *at; 224 std::string value = get_value(); 225 at = new ArrayType( q, new BasicType( q, BasicType::Char ), 226 new ConstantExpr( Constant( new BasicType( q, BasicType::SignedInt ), 227 toString( value.size() - 1 ) ) ), // account for '\0' 228 false, false ); 229 return new ConstantExpr( Constant( at, value ), maybeBuild< Expression >( get_argName() ) ); 233 { 234 // string should probably be a primitive type 235 ArrayType *at = new ArrayType( q, new BasicType( q, BasicType::Char ), 236 new ConstantExpr( 237 Constant( new BasicType( q, BasicType::UnsignedInt ), 238 toString( value.size() + 1 ) ) ), // account for '\0' 239 false, false ); 240 return new ConstantExpr( Constant( at, value ), maybeBuild< Expression >( get_argName() ) ); 241 } 242 default: 243 bt = new BasicType( q, btype ); 244 return new ConstantExpr( Constant( bt, get_value() ), maybeBuild< Expression >( get_argName() ) ); 230 245 } 231 return new ConstantExpr( Constant( bt, get_value()), maybeBuild< Expression >( get_argName() ) );232 246 } 233 247 234 248 VarRefNode::VarRefNode() : isLabel( false ) {} 235 249 236 VarRefNode::VarRefNode( string *name_, bool labelp ) : ExpressionNode( name_), isLabel( labelp ) {}250 VarRefNode::VarRefNode( const string *name_, bool labelp ) : ExpressionNode( name_ ), isLabel( labelp ) {} 237 251 238 252 VarRefNode::VarRefNode( const VarRefNode &other ) : ExpressionNode( other ), isLabel( other.isLabel ) { … … 277 291 } 278 292 279 std::stringOperatorNode::get_typename( void ) const{280 return string( OpName[ type ]);293 const char *OperatorNode::get_typename( void ) const{ 294 return OpName[ type ]; 281 295 } 282 296 … … 298 312 } 299 313 300 CompositeExprNode::CompositeExprNode( string *name_) : ExpressionNode( name_), function( 0 ), arguments( 0 ) {314 CompositeExprNode::CompositeExprNode( const string *name_ ) : ExpressionNode( name_ ), function( 0 ), arguments( 0 ) { 301 315 } 302 316 … … 612 626 void ValofExprNode::print( std::ostream &os, int indent ) const { 613 627 printDesignation( os ); 614 os << string( indent, ' ' ) << "Valof Expression:" << std::endl;628 os << string( indent, ' ' ) << "Valof Expression:" << std::endl; 615 629 get_body()->print( os, indent + 4); 616 630 } … … 657 671 658 672 void ForCtlExprNode::print( std::ostream &os, int indent ) const{ 659 os << string( indent,' ' ) << "For Control Expression -- :" << endl;660 661 os << string( indent + 2, ' ' ) << "initialization:" << endl;673 os << string( indent,' ' ) << "For Control Expression -- :" << endl; 674 675 os << string( indent + 2, ' ' ) << "initialization:" << endl; 662 676 if ( init != 0 ) 663 677 init->printList( os, indent + 4 ); … … 666 680 if ( condition != 0 ) 667 681 condition->print( os, indent + 4 ); 668 os << string( indent + 2, ' ' ) << "increment: " << endl;682 os << string( indent + 2, ' ' ) << "increment: " << endl; 669 683 if ( change != 0 ) 670 684 change->print( os, indent + 4 ); -
src/Parser/InitializerNode.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 13:20:24 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 13:21:40201513 // Update Count : 212 // Last Modified On : Sat Jun 6 15:49:42 2015 13 // Update Count : 3 14 14 // 15 15 … … 48 48 49 49 void InitializerNode::print( std::ostream &os, int indent ) const { 50 os << std::string( indent, ' ') << "Initializer expression" << std::endl;50 os << std::string( indent, ' ' ) << "Initializer expression" << std::endl; 51 51 } 52 52 -
src/Parser/ParseNode.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 3 11:17:58 201513 // Update Count : 412 // Last Modified On : Sat Jun 6 20:17:58 2015 13 // Update Count : 23 14 14 // 15 15 … … 20 20 int ParseNode::indent_by = 4; 21 21 22 ParseNode::ParseNode( void ) :next( 0 ) {};23 ParseNode::ParseNode( string _name ) : name( _name), next( 0 ) {}22 ParseNode::ParseNode() : name( 0 ), next( 0 ) {}; 23 ParseNode::ParseNode( const string *name_ ) : name( name_ ), next( 0 ) {} 24 24 25 ParseNode *ParseNode::set_name( string _name ) { 26 name = _name; 27 return this; 28 } 29 30 ParseNode *ParseNode::set_name( string *_name ) { 31 name = *_name; // deep copy 32 delete _name; 33 34 return this; 35 } 36 37 ParseNode::~ParseNode( void ) { 25 ParseNode::~ParseNode() { 38 26 delete next; 39 27 }; 40 28 41 string ParseNode::get_name( void ) { 42 return name; 43 } 44 45 ParseNode *ParseNode::get_link( void ) const { 29 ParseNode *ParseNode::get_link() const { 46 30 return next; 47 31 } 48 32 49 ParseNode *ParseNode::get_last( void) {33 ParseNode *ParseNode::get_last() { 50 34 ParseNode *current = this; 51 35 … … 56 40 } 57 41 58 ParseNode *ParseNode::set_link( ParseNode * _next) {42 ParseNode *ParseNode::set_link( ParseNode *next_ ) { 59 43 ParseNode *follow; 60 44 61 if ( _next== 0 ) return this;45 if ( next_ == 0 ) return this; 62 46 63 47 for ( follow = this; follow->next != 0; follow = follow->next ); 64 follow->next = _next;48 follow->next = next_; 65 49 66 50 return this; 67 }68 69 const string ParseNode::get_name( void ) const {70 return name;71 51 } 72 52 … … 79 59 if ( next ) { 80 60 next->printList( os, indent ); 81 } 61 } // if 82 62 } 83 63 -
src/Parser/ParseNode.h
ra65d92e r59db689 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 13:30:24201513 // Update Count : 312 // Last Modified On : Sat Jun 6 23:35:33 2015 13 // Update Count : 60 14 14 // 15 15 … … 22 22 23 23 #include "utility.h" 24 #include "SynTree/Type.h" 24 25 #include "SynTree/Declaration.h" 25 26 #include "UniqueName.h" … … 36 37 class ParseNode { 37 38 public: 38 ParseNode( void ); 39 ParseNode ( std::string ); 40 virtual ~ParseNode( void ); 41 42 ParseNode *set_name ( std::string ) ; 43 ParseNode *set_name ( std::string * ) ; 44 45 std::string get_name( void ); 46 47 ParseNode *get_link( void ) const; 48 ParseNode *get_last( void ); 39 ParseNode(); 40 ParseNode( const std::string * ); 41 virtual ~ParseNode(); 42 43 ParseNode *get_link() const; 44 ParseNode *get_last(); 49 45 ParseNode *set_link( ParseNode * ); 50 46 void set_next( ParseNode *newlink ) { next = newlink; } … … 52 48 virtual ParseNode *clone() const { return 0; }; 53 49 54 const std::string get_name( void ) const;50 const std::string &get_name() const { return *name; } 55 51 virtual void print( std::ostream &, int indent = 0 ) const; 56 52 virtual void printList( std::ostream &, int indent = 0 ) const; … … 58 54 ParseNode &operator,( ParseNode &); 59 55 protected: 60 std::stringname;56 const std::string *name; 61 57 ParseNode *next; 62 58 static int indent_by; … … 68 64 public: 69 65 ExpressionNode(); 70 ExpressionNode( std::string * );66 ExpressionNode( const std::string * ); 71 67 ExpressionNode( const ExpressionNode &other ); 72 68 virtual ~ExpressionNode() {} // cannot delete asArgName because it might be referenced elsewhere … … 77 73 78 74 ExpressionNode *get_argName() const { return argName; } 79 ExpressionNode *set_asArgName( std::string *aName );75 ExpressionNode *set_asArgName( const std::string *aName ); 80 76 ExpressionNode *set_asArgName( ExpressionNode *aDesignator ); 81 77 … … 109 105 }; 110 106 111 ConstantNode( void );112 ConstantNode( std::string * );113 107 ConstantNode( Type, std::string * ); 114 ConstantNode( const ConstantNode &other );115 108 116 109 virtual ConstantNode *clone() const { return new ConstantNode( *this ); } 117 110 118 Type get_type( void) const ;111 Type get_type() const ; 119 112 virtual void print( std::ostream &, int indent = 0) const; 120 113 virtual void printOneLine( std::ostream &, int indent = 0) const; 121 114 122 std::stringget_value() const { return value; }123 ConstantNode *append (std::string *newValue );115 const std::string &get_value() const { return value; } 116 ConstantNode *appendstr( const std::string *newValue ); 124 117 125 118 Expression *build() const; 126 119 private: 127 void classify( std::string &);128 120 Type type; 129 std::string value; 130 bool sign; 131 short base; 132 int longs, size; 121 BasicType::Kind btype; 122 std::string &value; 133 123 }; 134 124 … … 136 126 public: 137 127 VarRefNode(); 138 VarRefNode( std::string *, bool isLabel = false );128 VarRefNode( const std::string *, bool isLabel = false ); 139 129 VarRefNode( const VarRefNode &other ); 140 130 … … 143 133 virtual VarRefNode *clone() const { return new VarRefNode( *this ); } 144 134 145 virtual void print( std::ostream &, int indent = 0 ) const;146 virtual void printOneLine( std::ostream &, int indent = 0 ) const;135 virtual void print( std::ostream &, int indent = 0 ) const; 136 virtual void printOneLine( std::ostream &, int indent = 0 ) const; 147 137 private: 148 138 bool isLabel; … … 183 173 virtual OperatorNode *clone() const { return new OperatorNode( *this ); } 184 174 185 Type get_type( void) const;186 std::string get_typename( void) const;175 Type get_type() const; 176 const char *get_typename() const; 187 177 188 178 virtual void print( std::ostream &, int indent = 0) const; … … 198 188 class CompositeExprNode : public ExpressionNode { 199 189 public: 200 CompositeExprNode( void);201 CompositeExprNode( std::string * );190 CompositeExprNode(); 191 CompositeExprNode( const std::string * ); 202 192 CompositeExprNode( ExpressionNode *f, ExpressionNode *args = 0 ); 203 193 CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2 ); … … 302 292 static DeclarationNode *newEnumConstant( std::string *name, ExpressionNode *constant ); 303 293 static DeclarationNode *newName( std::string *); 304 static DeclarationNode *newFromTypeGen( std::string *, ExpressionNode *params );294 static DeclarationNode *newFromTypeGen( std::string *, ExpressionNode *params ); 305 295 static DeclarationNode *newTypeParam( TypeClass, std::string *); 306 296 static DeclarationNode *newContext( std::string *name, DeclarationNode *params, DeclarationNode *asserts ); … … 313 303 static DeclarationNode *newTuple( DeclarationNode *members ); 314 304 static DeclarationNode *newTypeof( ExpressionNode *expr ); 315 static DeclarationNode *newAttr( std::string *, ExpressionNode *expr );316 static DeclarationNode *newAttr( std::string *, DeclarationNode *type );305 static DeclarationNode *newAttr( std::string *, ExpressionNode *expr ); 306 static DeclarationNode *newAttr( std::string *, DeclarationNode *type ); 317 307 318 308 DeclarationNode *addQualifiers( DeclarationNode *); … … 380 370 }; 381 371 382 StatementNode( void);383 StatementNode( std::string);372 StatementNode(); 373 StatementNode( const std::string * ); 384 374 StatementNode( Type, ExpressionNode *e = 0, StatementNode *s = 0 ); 385 375 StatementNode( Type, std::string *target ); … … 387 377 388 378 389 ~StatementNode( void);390 391 static StatementNode 379 ~StatementNode(); 380 381 static StatementNode *newCatchStmt( DeclarationNode *d = 0, StatementNode *s = 0, bool catchRestP = false ); 392 382 393 383 void set_control( ExpressionNode * ); … … 396 386 ExpressionNode *get_control() const ; 397 387 StatementNode *get_block() const; 398 StatementNode::Type get_type( void) const;399 400 StatementNode *add_label( std::string * );388 StatementNode::Type get_type() const; 389 390 StatementNode *add_label( const std::string * ); 401 391 std::list<std::string> *get_labels() const; 402 392 … … 429 419 class CompoundStmtNode : public StatementNode { 430 420 public: 431 CompoundStmtNode( void);432 CompoundStmtNode( std::string * );421 CompoundStmtNode(); 422 CompoundStmtNode( const std::string * ); 433 423 CompoundStmtNode( StatementNode * ); 434 424 ~CompoundStmtNode(); … … 499 489 500 490 // in DeclarationNode.cc 501 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList );491 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ); 502 492 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType *> &outputList ); 503 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList );493 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ); 504 494 505 495 // in ExpressionNode.cc -
src/Parser/StatementNode.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 5 07:43:40201513 // Update Count : 1 012 // Last Modified On : Sat Jun 6 23:25:41 2015 13 // Update Count : 19 14 14 // 15 15 … … 36 36 StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {} 37 37 38 StatementNode::StatementNode( string name_) : ParseNode( name_), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}38 StatementNode::StatementNode( const string *name_ ) : ParseNode( name_ ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {} 39 39 40 40 StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), isCatchRest ( false ) { … … 67 67 68 68 StatementNode::StatementNode( Type t, string *_target ) : 69 type( t ), control( 0 ), block( 0 ), 69 type( t ), control( 0 ), block( 0 ), labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {} 70 70 71 71 StatementNode::~StatementNode() { … … 125 125 } 126 126 127 StatementNode *StatementNode::add_label( std::string *l ) {127 StatementNode *StatementNode::add_label( const std::string *l ) { 128 128 if ( l != 0 ) { 129 129 if ( labels == 0 ) … … 346 346 } 347 347 348 CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) { 349 } 350 351 CompoundStmtNode::CompoundStmtNode( string *name_) : StatementNode(*name_), first( 0 ), last( 0 ) { 352 } 353 354 CompoundStmtNode::CompoundStmtNode( StatementNode *stmt ): first( stmt ) { 348 CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {} 349 350 CompoundStmtNode::CompoundStmtNode( const string *name_ ) : StatementNode( name_ ), first( 0 ), last( 0 ) {} 351 352 CompoundStmtNode::CompoundStmtNode( StatementNode *stmt ) : first( stmt ) { 355 353 if ( first ) { 356 354 last = ( StatementNode *)( stmt->get_last()); -
src/Parser/TypeData.cc
ra65d92e r59db689 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 15:17:56201513 // Update Count : 412 // Last Modified On : Sat Jun 6 12:26:02 2015 13 // Update Count : 8 14 14 // 15 15 … … 691 691 } else { 692 692 switch ( ret ) { 693 case BasicType::LongLongSignedInt: // PAB693 case BasicType::LongLongSignedInt: 694 694 ret = BasicType::LongLongUnsignedInt; 695 695 break; … … 716 716 } else { 717 717 switch ( ret ) { 718 case BasicType::LongLongSignedInt: // PAB718 case BasicType::LongLongSignedInt: 719 719 ret = BasicType::LongLongUnsignedInt; 720 720 break; -
src/Parser/lex.cc
ra65d92e r59db689 382 382 (yy_c_buf_p) = yy_cp; 383 383 384 #define YY_NUM_RULES 17 0385 #define YY_END_OF_BUFFER 17 1384 #define YY_NUM_RULES 171 385 #define YY_END_OF_BUFFER 172 386 386 /* This struct is not used in this scanner, 387 387 but its presence is necessary. */ … … 391 391 flex_int32_t yy_nxt; 392 392 }; 393 static yyconst flex_int16_t yy_accept[82 2] =393 static yyconst flex_int16_t yy_accept[826] = 394 394 { 0, 395 395 0, 0, 0, 0, 0, 0, 108, 108, 111, 111, 396 17 1, 169, 7, 9, 8, 130, 110, 95, 135, 138,397 107, 11 7, 118, 133, 131, 121, 132, 124, 134, 100,398 101, 102, 12 2, 123, 140, 142, 141, 143, 169, 95,399 11 5, 169, 116, 136, 95, 97, 95, 95, 95, 95,396 172, 170, 7, 9, 8, 131, 110, 95, 136, 139, 397 107, 118, 119, 134, 132, 122, 133, 125, 135, 100, 398 101, 102, 123, 124, 141, 143, 142, 144, 170, 95, 399 116, 170, 117, 137, 95, 97, 95, 95, 95, 95, 400 400 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 401 95, 1 19, 139, 120, 137, 7, 169, 4, 4, 170,402 98, 17 0, 99, 108, 109, 114, 111, 112, 7, 9,403 0, 8, 14 7, 165, 95, 0, 159, 129, 152, 160,404 15 7, 144, 155, 145, 156, 154, 0, 105, 3, 0,405 406 15 8, 105, 103, 0, 0, 103, 103, 0, 0, 103,407 102, 102, 102, 0, 102, 12 7, 128, 126, 148, 150,408 14 6, 151, 149, 0, 0, 0, 0, 0, 0, 0,401 95, 120, 140, 121, 138, 7, 170, 4, 4, 171, 402 98, 171, 99, 108, 109, 115, 111, 112, 7, 9, 403 0, 8, 148, 166, 95, 0, 160, 130, 153, 161, 404 158, 145, 156, 146, 157, 155, 0, 105, 3, 0, 405 406 159, 105, 103, 0, 0, 103, 103, 0, 0, 103, 407 102, 102, 102, 0, 102, 128, 129, 127, 149, 151, 408 147, 152, 150, 0, 0, 0, 0, 0, 0, 0, 409 409 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 410 110, 107, 95, 0, 0, 16 2, 95, 95, 95, 95,410 110, 107, 95, 0, 0, 163, 95, 95, 95, 95, 411 411 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 412 412 95, 95, 36, 95, 95, 95, 95, 95, 95, 95, 413 413 95, 95, 95, 53, 95, 95, 95, 95, 95, 95, 414 95, 95, 95, 95, 95, 95, 95, 95, 161, 153, 415 7, 0, 0, 0, 2, 0, 5, 98, 0, 0, 416 417 0, 108, 113, 113, 0, 0, 0, 111, 0, 0, 414 95, 95, 95, 95, 95, 95, 95, 95, 95, 162, 415 154, 7, 0, 0, 0, 2, 0, 5, 98, 0, 416 417 0, 0, 108, 0, 114, 113, 113, 0, 0, 0, 418 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 0, 0, 0, 126, 105, 0, 105, 420 0, 0, 6, 0, 103, 0, 0, 0, 105, 0, 421 103, 103, 103, 103, 0, 104, 0, 0, 102, 102, 422 102, 102, 0, 164, 165, 0, 168, 167, 0, 0, 423 0, 96, 0, 0, 0, 0, 0, 0, 0, 95, 424 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 425 95, 95, 95, 95, 95, 95, 95, 95, 14, 95, 426 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 427 428 95, 95, 95, 95, 95, 47, 95, 95, 95, 60, 429 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 430 95, 95, 82, 95, 95, 95, 95, 95, 95, 95, 431 0, 0, 0, 0, 0, 0, 0, 0, 113, 0, 432 0, 0, 0, 0, 113, 0, 0, 169, 0, 0, 433 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 434 105, 0, 103, 103, 0, 0, 104, 104, 0, 104, 435 0, 104, 102, 102, 0, 0, 0, 0, 0, 0, 436 0, 0, 0, 0, 95, 95, 95, 95, 95, 95, 437 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 438 439 95, 95, 95, 95, 95, 95, 20, 95, 23, 95, 440 25, 95, 95, 95, 95, 95, 95, 39, 40, 95, 441 95, 95, 95, 95, 95, 95, 52, 95, 63, 95, 442 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 443 83, 95, 95, 90, 95, 95, 0, 0, 0, 0, 418 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 125, 105, 0, 105, 0, 0, 6, 420 0, 103, 0, 0, 0, 105, 0, 103, 103, 103, 421 103, 0, 104, 0, 0, 102, 102, 102, 102, 0, 422 163, 164, 0, 167, 166, 0, 0, 0, 96, 0, 423 0, 0, 0, 0, 0, 0, 95, 95, 95, 95, 445 113, 0, 0, 0, 0, 0, 105, 0, 0, 0, 446 0, 0, 0, 104, 104, 0, 106, 0, 104, 104, 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448 0, 0, 0, 95, 95, 21, 95, 95, 95, 95, 449 450 95, 95, 95, 15, 95, 95, 95, 95, 95, 95, 451 95, 95, 95, 95, 95, 95, 95, 22, 24, 95, 452 30, 95, 95, 95, 95, 38, 95, 95, 95, 45, 453 95, 95, 50, 95, 95, 95, 95, 95, 71, 95, 454 95, 95, 95, 95, 81, 95, 95, 88, 95, 95, 455 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457 106, 0, 0, 104, 106, 106, 0, 104, 0, 0, 458 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 424 459 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 425 95, 95, 95, 95, 95, 14, 95, 95, 95, 95, 426 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 427 428 95, 95, 47, 95, 95, 95, 60, 95, 95, 95, 429 95, 95, 95, 95, 95, 95, 95, 95, 95, 82, 430 95, 95, 95, 95, 95, 95, 0, 0, 0, 0, 431 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, 432 113, 0, 0, 168, 0, 0, 0, 0, 0, 0, 433 0, 0, 105, 0, 0, 0, 105, 0, 103, 103, 434 0, 0, 104, 104, 0, 104, 0, 104, 102, 102, 460 461 95, 95, 95, 95, 95, 55, 95, 95, 95, 95, 462 95, 95, 95, 26, 95, 95, 95, 37, 42, 95, 463 95, 48, 95, 57, 64, 95, 95, 70, 72, 75, 464 76, 78, 79, 95, 85, 95, 95, 0, 1, 0, 465 0, 0, 0, 0, 0, 98, 0, 0, 0, 113, 466 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 467 0, 0, 0, 0, 0, 95, 95, 17, 95, 95, 468 95, 95, 95, 95, 95, 16, 95, 95, 31, 95, 469 95, 95, 95, 95, 95, 95, 95, 95, 95, 33, 470 95, 35, 95, 44, 49, 95, 95, 84, 95, 95, 471 435 472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 437 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 438 439 95, 95, 20, 95, 23, 95, 25, 95, 95, 95, 440 95, 95, 95, 39, 40, 95, 95, 95, 95, 95, 441 95, 95, 52, 95, 63, 95, 95, 95, 95, 95, 442 95, 95, 95, 95, 95, 95, 83, 95, 95, 90, 443 95, 95, 0, 0, 0, 0, 0, 0, 0, 0, 444 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, 445 0, 0, 105, 0, 0, 0, 0, 0, 0, 104, 446 104, 0, 106, 0, 104, 104, 0, 0, 0, 0, 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 448 95, 21, 95, 95, 95, 95, 95, 95, 95, 15, 449 450 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 451 95, 95, 95, 22, 24, 95, 30, 95, 95, 95, 452 95, 38, 95, 95, 95, 45, 95, 95, 50, 95, 453 95, 95, 95, 95, 71, 95, 95, 95, 95, 95, 454 81, 95, 95, 88, 95, 95, 94, 0, 0, 0, 473 0, 0, 0, 10, 11, 27, 51, 95, 95, 95, 474 95, 95, 95, 95, 95, 95, 95, 56, 58, 61, 475 95, 95, 73, 86, 95, 34, 43, 66, 67, 89, 476 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477 0, 0, 0, 95, 65, 95, 95, 12, 95, 28, 478 32, 95, 95, 95, 62, 95, 95, 95, 95, 0, 455 479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 456 0, 0, 0, 0, 0, 0, 106, 0, 0, 104, 457 106, 106, 0, 104, 0, 0, 0, 0, 0, 0, 458 0, 0, 0, 0, 95, 0, 95, 95, 95, 95, 459 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 460 461 95, 55, 95, 95, 95, 95, 95, 95, 95, 26, 462 95, 95, 95, 37, 42, 95, 95, 48, 95, 57, 463 64, 95, 95, 70, 72, 75, 76, 78, 79, 95, 464 85, 95, 95, 0, 1, 0, 0, 0, 0, 0, 465 0, 98, 0, 0, 0, 113, 0, 0, 0, 0, 466 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 467 0, 95, 95, 17, 95, 95, 95, 95, 95, 95, 468 95, 16, 95, 95, 31, 95, 95, 95, 95, 95, 469 95, 95, 95, 95, 95, 33, 95, 35, 95, 44, 470 49, 95, 95, 84, 95, 95, 0, 0, 0, 0, 471 472 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 473 11, 27, 51, 95, 95, 95, 95, 95, 95, 95, 474 95, 95, 95, 56, 58, 61, 95, 95, 73, 86, 475 95, 34, 43, 66, 67, 89, 91, 0, 0, 0, 476 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 477 65, 95, 95, 12, 95, 28, 32, 95, 95, 95, 478 62, 95, 95, 95, 95, 0, 0, 0, 0, 0, 479 0, 0, 0, 0, 0, 0, 0, 0, 54, 95, 480 95, 95, 95, 95, 95, 46, 59, 68, 74, 87, 481 92, 0, 0, 0, 0, 0, 0, 0, 0, 95, 482 483 95, 13, 18, 29, 95, 95, 95, 0, 0, 95, 484 95, 95, 95, 69, 93, 95, 80, 19, 41, 77, 485 0 480 0, 0, 54, 95, 95, 95, 95, 95, 95, 46, 481 59, 68, 74, 87, 92, 0, 0, 0, 0, 0, 482 483 0, 0, 0, 95, 95, 13, 18, 29, 95, 95, 484 95, 0, 0, 95, 95, 95, 95, 69, 93, 95, 485 80, 19, 41, 77, 0 486 486 } ; 487 487 … … 522 522 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 523 523 4, 1, 1, 5, 1, 1, 1, 1, 1, 1, 524 6, 1, 7, 7, 7, 7, 8, 8, 1, 1,525 1, 1, 1, 9, 1, 10, 10, 10, 10, 10,526 10, 4, 4, 11, 4, 12, 4, 4, 13, 4,527 1, 1 4, 1, 1, 15, 1, 16, 16, 10, 10,528 16, 16, 4, 4, 4, 4, 11, 4, 17, 4,529 1 2, 17, 4, 17, 13, 17, 4, 17, 4, 4,524 6, 1, 7, 7, 7, 7, 7, 7, 1, 1, 525 1, 1, 1, 1, 1, 8, 8, 8, 8, 8, 526 8, 4, 4, 9, 4, 10, 4, 4, 9, 4, 527 1, 11, 1, 1, 12, 1, 8, 8, 8, 8, 528 8, 8, 4, 4, 4, 4, 9, 4, 4, 4, 529 10, 4, 4, 4, 9, 4, 4, 4, 4, 4, 530 530 1, 1, 1, 1 531 531 } ; 532 532 533 static yyconst flex_int16_t yy_base[99 6] =533 static yyconst flex_int16_t yy_base[999] = 534 534 { 0, 535 0, 83, 2 185, 2183, 93, 0, 175, 176, 177, 178,536 2 195, 3520, 189, 3520, 195, 54, 3520, 2142, 59, 171,537 3520, 3520, 3520, 55, 186, 3520, 189, 187, 202, 214,538 272, 0, 2 160, 3520, 214, 2160, 150, 340, 2138, 222,539 3520, 157, 3520, 2154, 277, 3520, 192, 133, 196, 198,540 204, 271, 155, 218, 181, 200, 266, 238, 210, 224,541 2 82, 3520, 223, 3520, 2151, 372, 361, 3520, 2162, 3520,542 2 131, 229, 3520, 0, 3520, 374, 0, 3520, 399, 3520,543 405, 411, 3520, 445, 2130, 234, 3520, 3520, 3520, 3520,544 3520, 2146, 3520, 2141, 3520, 3520, 2153, 505, 3520, 2170,545 546 3520, 550, 401, 414, 462, 262, 240, 280, 443, 380,547 0, 305, 24 1, 335, 399, 3520, 3520, 3520, 2140, 3520,548 3520, 3520, 2138, 2134, 215, 310, 2149, 327, 333, 349,549 3 61, 399, 400, 411, 2130, 427, 2080, 436, 2110, 317,550 3520, 3520, 483, 2105, 2100, 3520, 439, 376, 431, 420,551 368, 432, 421, 448, 557, 442, 451, 453, 463, 452,552 455, 398, 251, 459, 466, 344, 467, 456, 474, 464,553 298, 468, 488, 2102, 490, 492, 496, 506, 498, 502,554 499, 518, 529, 507, 532, 533, 535, 543, 3520, 3520,555 632, 625, 2150, 638, 3520, 665, 3520, 2100, 514, 2095,556 557 2 091, 0, 3520, 631, 2090, 2089, 2088, 0, 2110, 565,558 581, 589, 626, 639, 643, 647, 648, 651, 2106, 662,559 6 63, 2080, 2079, 3520, 675, 686, 3520, 2078, 2129, 3520,560 677, 0, 571, 700, 722, 739, 750, 571, 3520, 2086,561 2059, 0, 738, 2104, 772, 594, 3520, 2080, 2056, 791,562 3520, 3520, 2088, 3520, 3520, 673, 688, 2067, 2063, 659,563 20 59, 2058, 2057, 0, 2055, 0, 691, 555, 681, 536,564 54 1, 700, 717, 701, 719, 755, 702, 708, 736, 752,565 7 33, 750, 727, 729, 760, 2053, 771, 774, 772, 773,566 7 82, 783, 784, 785, 618, 788, 786, 787, 791, 793,567 568 792, 799, 809, 796, 798, 810, 2052, 811, 812, 813,569 8 17, 818, 820, 819, 821, 824, 825, 828, 829, 2051,570 8 33, 834, 832, 835, 844, 838, 904, 726, 2047, 2045,571 2040, 0, 2039, 0, 891, 895, 2038, 0, 2037, 0,572 20 35, 0, 2011, 3520, 876, 890, 1989, 1986, 0, 1983,573 0, 902, 908, 930, 914, 953, 959, 965, 3520, 3520,574 9 52, 958, 973, 922, 1027, 845, 1012, 898, 3520, 3520,575 1 982, 1981, 1980, 0, 1979, 0, 1977, 0, 1972, 0,576 899, 891, 893, 944, 949, 909, 950, 960, 964, 953,577 9 78, 983, 991, 989, 972, 979, 997, 851, 871, 1010,578 579 10 13, 1014, 1974, 1020, 1973, 1016, 1972, 922, 1017, 1024,580 1018, 1023, 1036, 1970, 1966, 1022, 1025, 1040, 1026, 1043,581 10 44, 1050, 1965, 1046, 1964, 1049, 1052, 1051, 1054, 1053,582 10 56, 1060, 1057, 1061, 1062, 1066, 1076, 1079, 1077, 1963,583 1 067, 1081, 1129, 1959, 0, 1957, 0, 1952, 0, 1951,584 0, 1 126, 1950, 0, 1949, 0, 1947, 1942, 1941, 0,585 19 40, 0, 1130, 1136, 1181, 1123, 1192, 1124, 1101, 1090,586 3520, 1198, 1204, 1215, 1950, 1925, 1932, 1931, 0, 1930,587 0, 1929, 0, 1927, 0, 1923, 0, 1922, 0, 1114,588 1116, 1924, 1115, 1121, 1123, 1137, 1134, 1144, 1082, 500,589 590 11 62, 1185, 1192, 1083, 1194, 1124, 1148, 164, 1197, 1198,591 12 00, 1201, 1203, 1923, 1922, 1202, 1920, 1205, 1209, 1212,592 1 215, 1914, 1216, 1138, 1221, 1909, 1222, 1218, 1904, 1225,593 12 29, 1228, 1230, 1232, 1903, 1239, 1235, 1241, 1240, 1242,594 1902, 1244, 1246, 1901, 1251, 1252, 1900, 1947, 1873, 0,595 1 872, 0, 1871, 0, 1870, 0, 1868, 0, 1863, 0,596 18 62, 0, 1861, 0, 1298, 1304, 1310, 1321, 1860, 3520,597 133 2, 3520, 1356, 3520, 1858, 0, 1853, 0, 1852, 0,598 18 51, 0, 0, 0, 1853, 0, 1318, 1257, 1258, 1298,599 13 00, 1291, 1259, 1255, 1309, 912, 1333, 1319, 1288, 1322,600 601 1 290, 1337, 1338, 1343, 1341, 1344, 1349, 1350, 1351, 1851,602 13 52, 1353, 1357, 1846, 1845, 1360, 1354, 1844, 1361, 1843,603 1 841, 1363, 1362, 1836, 1835, 1834, 1833, 1831, 1826, 1365,604 182 5, 1377, 1367, 1873, 3520, 1820, 0, 1818, 0, 0,605 0, 1 816, 0, 0, 0, 3520, 0, 0, 0, 0,606 1416, 1422, 1467, 1812, 0, 1811, 0, 0, 0, 0,607 1810, 1383, 1399, 1811, 1384, 1400, 1401, 1402, 1412, 1413,608 1 385, 1806, 1417, 1418, 1421, 1428, 1448, 1430, 1435, 1454,609 14 47, 1445, 1451, 1436, 1452, 1805, 1453, 1804, 1434, 1803,610 1 801, 1455, 1456, 1796, 1460, 1463, 0, 0, 1792, 1791,611 612 1790, 1788, 1508, 0, 1777, 1774, 1773, 1769, 1768, 1770,613 17 69, 1767, 1743, 1466, 1471, 1464, 1461, 1467, 1473, 1474,614 1 487, 1485, 1516, 1732, 1491, 1731, 1492, 1497, 1499, 1503,615 1 493, 1727, 1724, 1723, 1722, 1720, 1718, 1713, 1708, 1699,616 1 696, 1686, 1683, 1682, 1655, 1654, 1653, 1652, 1651, 1501,617 16 44, 1505, 1507, 1509, 1510, 1514, 1641, 1513, 1540, 1518,618 16 40, 1519, 1520, 1524, 1529, 1583, 1582, 1581, 1580, 1579,619 1 578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1573, 1522,620 15 30, 1533, 1535, 1539, 1534, 1571, 1570, 1545, 1370, 1315,621 1 546, 1258, 1257, 1129, 1082, 984, 983, 982, 944, 1547,622 623 1550, 916, 1554, 758, 1558, 1559, 1560, 677, 676, 1552,624 15 53, 1564, 1566, 635, 595, 1565, 544, 419, 236, 165,625 3520, 1639, 1656, 1673, 1687, 1701, 1718, 1732, 1749, 1764,626 17 81, 1798, 1810, 1823, 1834, 1844, 1854, 1864, 1874, 1884,627 18 94, 1904, 1914, 1930, 1941, 1952, 1963, 1973, 1983, 1993,628 2003, 2013, 2023, 2036, 2053, 2070, 2081, 2091, 2101, 2111,629 2121, 2131, 2141, 2151, 2161, 2171, 2181, 2191, 2201, 2211,630 2221, 2231, 2241, 2251, 2262, 2272, 2282, 2292, 2302, 2312,631 2 322, 2332, 2342, 2352, 2362, 2375, 2392, 2403, 2413, 2423,632 2 433, 2443, 2453, 2463, 2473, 2483, 2493, 2503, 2513, 2523,633 634 2 533, 2543, 2553, 2563, 2573, 2583, 2593, 2603, 2613, 2623,635 2 633, 2643, 2653, 2663, 2673, 2683, 2693, 2703, 2716, 2733,636 2 744, 2754, 2764, 2774, 2784, 2794, 2804, 2814, 2824, 2834,637 2 844, 2854, 2864, 2874, 2884, 2894, 2904, 2914, 2924, 2934,638 2 944, 2954, 2964, 2974, 2984, 2994, 3004, 3017, 3028, 3044,639 3055, 3065, 3075, 3085, 3095, 3105, 3118, 3129, 3139, 3149,640 3159, 3169, 3179, 3189, 3199, 3209, 3219, 3229, 3239, 3249,641 3259, 3269, 3282, 3293, 3303, 3313, 3323, 3333, 3343, 3353,642 3363, 3373, 3383, 3393, 3403, 3413, 3423, 3433, 3443, 3453,643 3463, 3473, 3483, 3493, 3503535 0, 83, 2266, 2265, 93, 0, 175, 176, 177, 178, 536 2281, 2568, 189, 2568, 195, 54, 2568, 2223, 59, 171, 537 2568, 2568, 2568, 55, 186, 2568, 189, 187, 202, 214, 538 272, 0, 2241, 2568, 214, 2241, 150, 340, 2215, 222, 539 2568, 157, 2568, 2234, 277, 2568, 192, 133, 196, 198, 540 204, 271, 155, 218, 181, 200, 266, 238, 337, 224, 541 227, 2568, 223, 2568, 2231, 372, 400, 2568, 2237, 2568, 542 2206, 213, 2568, 0, 2568, 427, 0, 2568, 363, 2568, 543 381, 393, 2568, 498, 2205, 229, 2568, 2568, 2568, 2568, 544 2568, 2217, 2568, 2216, 2568, 2568, 2228, 558, 2568, 2240, 545 546 2568, 603, 385, 443, 419, 259, 239, 280, 399, 406, 547 0, 305, 240, 335, 411, 2568, 2568, 2568, 2210, 2568, 548 2568, 2568, 2209, 2188, 215, 277, 2203, 310, 383, 384, 549 327, 425, 380, 399, 2180, 448, 2130, 458, 2160, 288, 550 2568, 2568, 486, 2151, 2150, 2568, 420, 423, 439, 456, 551 445, 455, 460, 329, 483, 469, 462, 467, 480, 494, 552 396, 471, 472, 487, 470, 513, 489, 506, 508, 509, 553 386, 510, 516, 2152, 520, 522, 518, 541, 526, 543, 554 540, 551, 549, 553, 565, 598, 572, 581, 557, 2568, 555 2568, 669, 659, 2195, 686, 2568, 692, 2568, 2145, 559, 556 557 2141, 2135, 0, 649, 2568, 2568, 679, 2134, 2133, 2127, 558 0, 2149, 535, 606, 607, 674, 635, 625, 646, 664, 559 689, 2146, 692, 693, 2119, 2118, 2568, 712, 723, 2568, 560 2117, 2165, 2568, 714, 0, 555, 705, 759, 765, 776, 561 593, 2568, 2123, 2099, 0, 784, 2141, 787, 632, 2568, 562 2116, 2087, 798, 2568, 2568, 2119, 2568, 2568, 710, 725, 563 2099, 2094, 720, 2090, 2089, 2085, 0, 2084, 0, 712, 564 548, 710, 766, 767, 597, 745, 711, 777, 764, 788, 565 720, 783, 792, 713, 639, 789, 611, 793, 2086, 794, 566 791, 795, 810, 800, 805, 813, 814, 361, 818, 815, 567 568 816, 821, 825, 822, 826, 828, 829, 836, 838, 2080, 569 841, 842, 843, 839, 844, 845, 846, 849, 847, 853, 570 855, 860, 2079, 859, 905, 864, 866, 872, 870, 871, 571 933, 930, 2075, 2069, 2068, 0, 2067, 0, 920, 924, 572 2061, 0, 2060, 0, 2059, 0, 2074, 2568, 919, 920, 573 2054, 2051, 0, 2045, 0, 935, 941, 953, 963, 974, 574 986, 996, 2568, 2568, 960, 961, 1013, 989, 1047, 926, 575 1045, 968, 2568, 2568, 2044, 2043, 2037, 0, 2036, 0, 576 2035, 0, 2014, 0, 874, 873, 987, 903, 931, 932, 577 984, 920, 994, 995, 974, 976, 1009, 1024, 1017, 992, 578 579 1029, 1027, 952, 1030, 1034, 1040, 2016, 1031, 2011, 1047, 580 2010, 1049, 1043, 1054, 1038, 1056, 1057, 2009, 2003, 1052, 581 1058, 1062, 1069, 1073, 1074, 1075, 2002, 1076, 2001, 1078, 582 1079, 1082, 1083, 1085, 1081, 1086, 1092, 1089, 1099, 583, 583 1108, 1095, 1087, 1995, 1097, 1109, 1160, 1991, 0, 1990, 584 0, 1984, 0, 1983, 0, 1149, 1982, 0, 1978, 0, 585 1977, 1976, 1972, 0, 1971, 0, 1156, 1162, 1207, 1121, 586 1218, 1149, 1120, 1144, 2568, 1224, 1230, 1241, 1981, 1954, 587 1959, 1957, 0, 1953, 0, 1951, 0, 1945, 0, 1944, 588 0, 1943, 0, 1125, 1144, 1940, 1146, 1149, 1147, 1153, 589 590 1150, 1218, 1162, 1110, 1156, 1155, 1164, 1211, 1224, 1225, 591 1226, 164, 1228, 1208, 1170, 1232, 1238, 1939, 1938, 1235, 592 1932, 1227, 1231, 1234, 1242, 1931, 1246, 1247, 1250, 1930, 593 1252, 1255, 1924, 1257, 1261, 1254, 1256, 1258, 1923, 1264, 594 709, 1271, 1262, 1268, 1922, 1273, 1277, 1916, 1274, 1279, 595 1915, 1963, 1905, 0, 1904, 0, 1903, 0, 1897, 0, 596 1896, 0, 1895, 0, 1891, 0, 1890, 0, 1322, 1328, 597 1334, 1345, 1889, 2568, 1356, 2568, 1380, 2568, 1885, 0, 598 1884, 0, 1883, 0, 1850, 0, 0, 0, 1852, 0, 599 1342, 1281, 1315, 1322, 1333, 1289, 1283, 1338, 1340, 1336, 600 601 1361, 1343, 1341, 1362, 1364, 1365, 1367, 1397, 1373, 1314, 602 1376, 1375, 1377, 1847, 1378, 1380, 1382, 1846, 1845, 1381, 603 1387, 1839, 1389, 1838, 1837, 1396, 1391, 1833, 1832, 1831, 604 1827, 1826, 1825, 1392, 1818, 1407, 1394, 1846, 2568, 1793, 605 0, 1792, 0, 0, 0, 1791, 0, 0, 0, 2568, 606 0, 0, 0, 0, 1446, 1452, 1497, 1787, 0, 1786, 607 0, 0, 0, 0, 1782, 1408, 1430, 1784, 1410, 1432, 608 1437, 1411, 1412, 1443, 1433, 1783, 1447, 1445, 1457, 1413, 609 1476, 1463, 1450, 1477, 1475, 1474, 1480, 1479, 1481, 1779, 610 1482, 1778, 1483, 1777, 1773, 1464, 1485, 1772, 1490, 1486, 611 612 0, 0, 1768, 1764, 1763, 1762, 1537, 0, 1758, 1757, 613 1756, 1752, 1751, 1753, 1749, 1748, 1747, 1496, 1497, 1499, 614 1502, 1493, 1492, 1501, 1518, 1519, 1547, 1738, 1522, 1737, 615 1523, 1458, 1528, 1530, 1524, 1734, 1733, 1732, 1715, 1707, 616 1706, 1700, 1694, 1691, 1683, 1682, 1663, 1662, 1661, 1653, 617 1652, 1613, 1612, 1529, 1614, 1534, 1535, 1538, 1536, 1542, 618 1613, 1543, 1562, 1546, 1612, 1544, 1548, 1554, 1550, 1608, 619 1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1598, 1597, 620 1567, 1566, 1505, 1552, 1560, 1565, 1563, 1571, 1564, 1286, 621 1285, 1575, 1188, 1158, 1576, 1001, 997, 950, 901, 753, 622 623 752, 642, 556, 1577, 1580, 519, 1584, 475, 1588, 1589, 624 1590, 471, 407, 1582, 1583, 1594, 1596, 353, 298, 1595, 625 274, 234, 233, 165, 2568, 1669, 1681, 1693, 1702, 1711, 626 1723, 1732, 1744, 1756, 1768, 1775, 1784, 1790, 1796, 1802, 627 1808, 1814, 1820, 1826, 1832, 1838, 1850, 1856, 1859, 1866, 628 1868, 1874, 1880, 1886, 1888, 1894, 1899, 1911, 1923, 1929, 629 1935, 1941, 1947, 1949, 1955, 1957, 1963, 1965, 1971, 1973, 630 1979, 1981, 1987, 1989, 1995, 1997, 2003, 2010, 2016, 2022, 631 2028, 2034, 2036, 2042, 2044, 2050, 2052, 2058, 2063, 2075, 632 2081, 2087, 2089, 2095, 2097, 2103, 2105, 2111, 2113, 2119, 633 634 2121, 2127, 2129, 2135, 2141, 2143, 2149, 2151, 2157, 2163, 635 2169, 2171, 2177, 2179, 2185, 2187, 2193, 2195, 2201, 2203, 636 2209, 2214, 2226, 2232, 2238, 2240, 2246, 2248, 2254, 2256, 637 2262, 2264, 2270, 2272, 2278, 2280, 2286, 2288, 2294, 2296, 638 2302, 2308, 2310, 2316, 2318, 2324, 2326, 2332, 2334, 2336, 639 2341, 2347, 2355, 2361, 2367, 2369, 2375, 2377, 2379, 2384, 640 2390, 2392, 2394, 2396, 2398, 2400, 2402, 2404, 2410, 2412, 641 2418, 2420, 2422, 2424, 2426, 2435, 2441, 2443, 2445, 2451, 642 2457, 2463, 2465, 2471, 2477, 2483, 2489, 2495, 2501, 2507, 643 2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555 644 644 645 645 } ; 646 646 647 static yyconst flex_int16_t yy_def[99 6] =647 static yyconst flex_int16_t yy_def[999] = 648 648 { 0, 649 821, 1, 822, 822, 821, 5, 823, 823, 824, 824, 650 821, 821, 821, 821, 821, 821, 821, 825, 821, 821, 651 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 652 821, 31, 821, 821, 821, 821, 821, 821, 826, 825, 653 821, 821, 821, 821, 825, 821, 825, 825, 825, 825, 649 825, 1, 826, 826, 825, 5, 827, 827, 828, 828, 650 825, 825, 825, 825, 825, 825, 825, 829, 825, 825, 654 651 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 655 825, 821, 821, 821, 821, 821, 827, 821, 821, 821, 656 828, 821, 821, 829, 821, 830, 831, 821, 821, 821, 657 821, 821, 821, 821, 825, 821, 821, 821, 821, 821, 658 821, 821, 821, 821, 821, 821, 821, 821, 821, 832, 659 660 821, 821, 30, 821, 821, 821, 821, 833, 30, 821, 661 31, 821, 821, 31, 821, 821, 821, 821, 821, 821, 662 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 663 821, 821, 821, 821, 821, 821, 821, 821, 834, 821, 664 821, 821, 825, 835, 836, 821, 825, 825, 825, 825, 652 825, 31, 825, 825, 825, 825, 825, 825, 830, 829, 653 825, 825, 825, 825, 829, 825, 829, 829, 829, 829, 654 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, 655 829, 825, 825, 825, 825, 825, 831, 825, 825, 825, 656 832, 825, 825, 833, 825, 825, 834, 825, 825, 825, 657 825, 825, 825, 825, 829, 825, 825, 825, 825, 825, 658 825, 825, 825, 825, 825, 825, 825, 825, 825, 835, 659 660 825, 825, 30, 825, 825, 825, 825, 836, 30, 825, 661 31, 825, 825, 31, 825, 825, 825, 825, 825, 825, 662 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 663 825, 825, 825, 825, 825, 825, 825, 825, 837, 825, 664 825, 825, 829, 838, 839, 825, 829, 829, 829, 829, 665 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, 666 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, 667 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, 668 829, 829, 829, 829, 829, 829, 829, 829, 829, 825, 669 825, 825, 831, 831, 831, 825, 831, 825, 832, 825, 670 671 840, 841, 833, 825, 825, 825, 825, 842, 843, 844, 672 834, 825, 825, 825, 825, 825, 825, 825, 825, 825, 673 825, 825, 825, 825, 845, 846, 825, 825, 825, 825, 674 228, 847, 825, 825, 103, 103, 825, 825, 825, 825, 675 825, 825, 825, 825, 848, 849, 850, 825, 825, 825, 676 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 677 825, 837, 825, 851, 852, 853, 854, 855, 856, 857, 678 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 679 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 680 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 681 682 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 683 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 684 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 685 858, 859, 860, 861, 862, 863, 864, 865, 825, 825, 686 866, 867, 868, 869, 870, 871, 825, 825, 825, 825, 687 825, 872, 873, 874, 875, 825, 825, 825, 825, 825, 688 825, 825, 825, 825, 876, 877, 878, 825, 825, 825, 689 878, 825, 825, 825, 879, 880, 881, 882, 883, 884, 690 885, 886, 887, 888, 889, 889, 889, 889, 889, 889, 691 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 692 693 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 694 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 695 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 696 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 697 889, 889, 889, 889, 889, 889, 890, 891, 892, 893, 698 894, 895, 896, 897, 898, 825, 899, 900, 901, 902, 699 903, 903, 904, 905, 906, 907, 825, 825, 825, 908, 700 825, 908, 825, 825, 825, 825, 825, 825, 825, 825, 701 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 702 919, 920, 921, 922, 922, 922, 922, 922, 922, 922, 703 704 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 705 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 706 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 707 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 708 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 709 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 710 932, 933, 934, 935, 936, 937, 938, 939, 825, 825, 711 825, 825, 940, 825, 825, 825, 825, 825, 941, 942, 712 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 713 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 714 715 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 716 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 717 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, 718 951, 951, 951, 951, 951, 951, 951, 953, 825, 954, 719 955, 956, 957, 958, 959, 960, 961, 962, 963, 825, 720 964, 965, 966, 967, 825, 825, 825, 968, 969, 970, 721 971, 972, 973, 974, 975, 976, 976, 976, 976, 976, 722 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 723 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 724 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 725 726 977, 978, 956, 979, 980, 981, 825, 982, 968, 970, 727 983, 984, 975, 976, 976, 976, 976, 976, 976, 976, 728 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 729 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 730 976, 985, 986, 979, 987, 980, 988, 981, 989, 990, 731 983, 991, 984, 976, 976, 976, 976, 976, 976, 976, 732 976, 976, 976, 976, 976, 976, 976, 976, 976, 992, 733 985, 993, 986, 994, 987, 995, 988, 996, 989, 997, 734 990, 991, 976, 976, 976, 976, 976, 976, 976, 976, 735 976, 976, 976, 976, 976, 998, 992, 993, 994, 995, 736 737 970, 996, 997, 976, 976, 976, 976, 976, 976, 976, 738 976, 998, 970, 976, 976, 976, 976, 976, 976, 976, 739 976, 976, 976, 976, 0, 825, 825, 825, 825, 825, 665 740 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 666 741 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 667 742 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 668 825, 825, 825, 825, 825, 825, 825, 825, 821, 821, 669 821, 827, 827, 827, 821, 827, 821, 828, 821, 837, 670 671 838, 829, 821, 821, 839, 840, 841, 831, 821, 821, 672 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 673 821, 842, 843, 821, 821, 821, 821, 225, 844, 821, 674 821, 103, 103, 821, 821, 821, 821, 821, 821, 821, 675 821, 845, 846, 847, 821, 821, 821, 821, 821, 821, 676 821, 821, 821, 821, 821, 821, 821, 821, 834, 821, 677 848, 849, 850, 851, 852, 853, 854, 854, 854, 854, 678 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 679 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 680 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 681 682 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 683 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 684 854, 854, 854, 854, 854, 854, 855, 856, 857, 858, 685 859, 860, 861, 862, 821, 821, 863, 864, 865, 866, 686 867, 868, 821, 821, 821, 821, 821, 869, 870, 871, 687 872, 821, 821, 821, 821, 821, 821, 821, 821, 821, 688 873, 874, 875, 821, 821, 821, 875, 821, 821, 821, 689 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 690 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 691 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 692 693 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 694 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 695 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 696 886, 886, 886, 886, 886, 886, 886, 886, 886, 886, 697 886, 886, 887, 888, 889, 890, 891, 892, 893, 894, 698 895, 821, 896, 897, 898, 899, 900, 900, 901, 902, 699 903, 904, 821, 821, 821, 905, 821, 905, 821, 821, 700 821, 821, 821, 821, 821, 821, 906, 907, 908, 909, 701 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 702 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 703 704 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 705 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 706 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 707 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 708 919, 919, 919, 919, 919, 919, 919, 920, 921, 922, 709 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 710 933, 934, 935, 936, 821, 821, 821, 821, 937, 821, 711 821, 821, 821, 821, 938, 939, 940, 941, 942, 943, 712 944, 945, 946, 947, 948, 949, 948, 948, 948, 948, 713 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 714 715 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 716 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 717 948, 948, 948, 948, 948, 948, 948, 948, 948, 948, 718 948, 948, 948, 950, 821, 951, 952, 953, 954, 955, 719 956, 957, 958, 959, 960, 821, 961, 962, 963, 964, 720 821, 821, 821, 965, 966, 967, 968, 969, 970, 971, 721 972, 973, 973, 973, 973, 973, 973, 973, 973, 973, 722 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 723 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 724 973, 973, 973, 973, 973, 973, 974, 975, 953, 976, 725 726 977, 978, 821, 979, 965, 967, 980, 981, 972, 973, 727 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 728 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 729 973, 973, 973, 973, 973, 973, 973, 982, 983, 976, 730 984, 977, 985, 978, 986, 987, 980, 988, 981, 973, 731 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 732 973, 973, 973, 973, 973, 989, 982, 990, 983, 991, 733 984, 992, 985, 993, 986, 994, 987, 988, 973, 973, 734 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 735 973, 995, 989, 990, 991, 992, 967, 993, 994, 973, 736 737 973, 973, 973, 973, 973, 973, 973, 995, 967, 973, 738 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 739 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 740 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 741 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 742 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 743 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 744 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 745 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 746 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 747 748 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 749 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 750 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 751 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 752 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 753 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 754 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 755 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 756 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 757 821, 821, 821, 821, 821 743 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 744 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 745 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 746 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 747 748 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 749 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 750 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 751 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 752 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 753 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 754 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 755 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 756 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 757 825, 825, 825, 825, 825, 825, 825, 825 758 758 759 759 } ; 760 760 761 static yyconst flex_int16_t yy_nxt[ 3605] =761 static yyconst flex_int16_t yy_nxt[2653] = 762 762 { 0, 763 763 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 765 765 28, 29, 30, 31, 32, 32, 32, 32, 33, 34, 766 766 35, 36, 37, 38, 39, 18, 18, 18, 18, 18, 767 18, 18, 18, 40, 18, 18, 18, 18, 18, 18,767 18, 18, 18, 40, 18, 18, 18, 18, 40, 18, 768 768 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 769 769 51, 52, 53, 18, 54, 18, 55, 18, 18, 18, … … 780 780 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 781 781 71, 71, 71, 70, 70, 70, 70, 75, 75, 78, 782 78, 122, 123, 89, 86, 78, 78, 60 4, 75, 75,782 78, 122, 123, 89, 86, 78, 78, 608, 75, 75, 783 783 79, 80, 81, 81, 81, 79, 81, 80, 82, 82, 784 784 … … 787 787 95, 96, 84, 100, 173, 117, 76, 76, 76, 76, 788 788 141, 145, 86, 101, 102, 142, 103, 103, 103, 103, 789 104, 104, 118, 86, 119, 120, 253, 86, 254, 86, 790 176, 86, 159, 105, 189, 86, 177, 106, 162, 160, 791 178, 86, 107, 108, 156, 161, 157, 163, 109, 86, 792 165, 164, 166, 86, 105, 86, 143, 200, 186, 174, 793 110, 167, 222, 240, 248, 141, 175, 86, 107, 86, 794 142, 108, 102, 187, 111, 111, 111, 111, 111, 111, 795 796 242, 183, 86, 201, 190, 238, 241, 249, 223, 184, 797 239, 105, 147, 148, 149, 112, 185, 86, 150, 151, 798 113, 152, 86, 153, 154, 295, 114, 168, 86, 179, 799 180, 155, 105, 86, 244, 169, 239, 170, 115, 181, 800 171, 253, 182, 254, 172, 188, 113, 124, 246, 86, 801 255, 125, 126, 247, 127, 821, 128, 129, 253, 130, 802 254, 131, 194, 195, 253, 261, 254, 194, 255, 303, 803 132, 133, 134, 191, 80, 81, 81, 81, 191, 247, 804 253, 192, 254, 196, 196, 196, 196, 196, 196, 250, 805 135, 262, 253, 136, 254, 86, 204, 204, 204, 204, 806 807 79, 80, 81, 81, 81, 79, 81, 80, 81, 81, 808 81, 81, 81, 80, 82, 82, 82, 81, 298, 86, 809 137, 138, 205, 232, 232, 232, 232, 86, 239, 256, 810 253, 253, 254, 254, 102, 272, 104, 104, 104, 104, 811 104, 104, 253, 257, 254, 269, 238, 247, 206, 86, 812 821, 207, 209, 105, 239, 233, 210, 211, 253, 294, 813 254, 212, 213, 821, 214, 246, 215, 253, 234, 254, 814 86, 86, 86, 247, 105, 216, 217, 218, 821, 235, 815 271, 235, 86, 86, 236, 236, 236, 236, 236, 236, 816 86, 141, 821, 86, 274, 219, 142, 245, 220, 86, 817 818 270, 273, 86, 86, 86, 267, 86, 86, 291, 286, 819 86, 275, 268, 288, 86, 86, 237, 86, 86, 86, 820 821, 292, 300, 293, 287, 86, 221, 225, 225, 225, 821 225, 225, 225, 302, 86, 289, 290, 296, 297, 86, 822 299, 86, 301, 86, 226, 227, 304, 86, 227, 86, 823 86, 86, 309, 86, 596, 316, 306, 86, 86, 228, 824 308, 305, 329, 307, 314, 226, 227, 313, 310, 86, 825 317, 227, 98, 98, 98, 98, 98, 98, 311, 312, 826 86, 315, 318, 86, 86, 320, 86, 86, 330, 226, 827 227, 821, 86, 227, 86, 86, 343, 322, 344, 324, 828 829 319, 325, 321, 384, 231, 323, 86, 326, 86, 385, 830 226, 227, 343, 276, 344, 277, 227, 278, 279, 359, 831 343, 280, 344, 281, 382, 356, 194, 195, 282, 283, 832 284, 194, 285, 191, 80, 81, 81, 81, 191, 194, 833 195, 192, 369, 344, 194, 359, 86, 196, 196, 196, 834 196, 196, 196, 335, 335, 335, 335, 343, 344, 344, 835 196, 196, 196, 196, 196, 196, 327, 195, 369, 86, 836 343, 327, 344, 328, 343, 412, 344, 345, 343, 343, 837 344, 344, 343, 346, 344, 336, 86, 196, 196, 196, 838 196, 196, 196, 343, 343, 344, 344, 225, 225, 225, 839 840 225, 225, 225, 352, 253, 352, 254, 371, 353, 353, 841 353, 353, 353, 353, 226, 227, 226, 227, 227, 253, 842 227, 254, 104, 104, 104, 104, 104, 104, 195, 228, 843 821, 821, 86, 372, 193, 226, 227, 226, 227, 105, 844 354, 227, 86, 227, 236, 236, 236, 236, 236, 236, 845 383, 86, 86, 86, 245, 381, 386, 388, 362, 86, 846 105, 357, 357, 357, 357, 357, 357, 235, 86, 235, 847 86, 393, 236, 236, 236, 236, 236, 236, 86, 227, 848 86, 364, 227, 365, 86, 394, 366, 86, 387, 398, 849 389, 400, 367, 358, 104, 104, 104, 104, 104, 104, 850 851 227, 86, 395, 86, 368, 227, 86, 401, 365, 86, 852 399, 86, 366, 111, 111, 111, 111, 111, 111, 396, 853 397, 390, 86, 86, 86, 86, 245, 391, 392, 402, 854 404, 406, 405, 86, 86, 86, 86, 86, 86, 86, 855 403, 411, 86, 86, 86, 250, 414, 86, 418, 86, 856 86, 416, 408, 407, 415, 419, 409, 410, 413, 417, 857 86, 86, 86, 86, 86, 420, 422, 423, 86, 86, 858 86, 86, 86, 425, 424, 86, 86, 427, 426, 86, 859 86, 432, 421, 86, 86, 86, 86, 431, 475, 86, 860 428, 430, 429, 437, 440, 86, 439, 433, 436, 434, 861 862 441, 435, 86, 438, 442, 327, 195, 343, 509, 344, 863 327, 476, 328, 203, 203, 203, 203, 335, 335, 335, 864 335, 343, 86, 344, 353, 353, 353, 353, 353, 353, 865 463, 463, 463, 463, 463, 463, 225, 225, 225, 225, 866 225, 225, 86, 510, 86, 452, 471, 352, 227, 352, 867 86, 227, 353, 353, 353, 353, 353, 353, 491, 492, 868 86, 490, 464, 86, 470, 470, 672, 86, 355, 227, 869 471, 495, 471, 86, 227, 232, 232, 232, 232, 104, 870 104, 357, 357, 357, 357, 357, 357, 357, 357, 357, 871 357, 357, 357, 362, 516, 86, 471, 467, 821, 227, 872 873 86, 86, 227, 467, 86, 227, 468, 356, 227, 494, 874 496, 86, 469, 358, 493, 86, 364, 499, 365, 465, 875 227, 366, 467, 86, 498, 227, 227, 367, 467, 86, 876 86, 227, 821, 497, 86, 506, 821, 809, 821, 368, 877 86, 505, 86, 365, 472, 500, 472, 366, 86, 473, 878 473, 473, 473, 473, 473, 364, 501, 365, 502, 503, 879 366, 86, 504, 507, 86, 86, 477, 86, 86, 86, 880 508, 86, 511, 86, 86, 86, 86, 86, 368, 515, 881 513, 474, 365, 512, 518, 514, 366, 86, 519, 521, 882 517, 86, 520, 523, 86, 86, 522, 86, 524, 526, 883 884 86, 86, 86, 86, 86, 86, 525, 86, 86, 527, 885 529, 86, 86, 86, 530, 528, 536, 86, 86, 539, 886 540, 538, 533, 531, 532, 534, 535, 86, 86, 537, 887 86, 195, 86, 86, 86, 542, 821, 548, 570, 545, 888 546, 547, 541, 600, 595, 543, 467, 544, 203, 203, 889 203, 203, 463, 463, 463, 463, 463, 463, 463, 463, 890 463, 463, 463, 463, 570, 86, 86, 86, 467, 467, 891 227, 467, 86, 227, 86, 86, 227, 468, 569, 227, 892 588, 589, 587, 821, 464, 86, 602, 591, 86, 86, 893 565, 227, 590, 467, 467, 86, 227, 227, 593, 86, 894 895 594, 616, 227, 357, 357, 357, 357, 357, 357, 566, 896 592, 566, 603, 86, 567, 567, 567, 567, 567, 567, 897 473, 473, 473, 473, 473, 473, 571, 571, 571, 571, 898 571, 571, 472, 597, 472, 465, 86, 473, 473, 473, 899 473, 473, 473, 86, 572, 86, 568, 572, 86, 86, 900 601, 86, 86, 86, 86, 598, 86, 605, 573, 609, 901 86, 608, 610, 86, 599, 572, 86, 86, 607, 86, 902 572, 606, 86, 86, 619, 614, 86, 612, 613, 86, 903 86, 86, 611, 86, 615, 620, 86, 617, 618, 621, 904 86, 86, 86, 86, 623, 86, 626, 86, 625, 627, 905 906 624, 622, 86, 86, 630, 629, 86, 631, 86, 86, 907 86, 821, 808, 628, 670, 664, 633, 669, 665, 632, 908 463, 463, 463, 463, 463, 463, 567, 567, 567, 567, 909 567, 567, 651, 651, 651, 651, 651, 651, 566, 86, 910 566, 86, 86, 567, 567, 567, 567, 567, 567, 86, 911 572, 86, 565, 572, 571, 571, 571, 571, 571, 571, 912 86, 675, 666, 677, 652, 668, 86, 680, 667, 86, 913 86, 572, 572, 86, 662, 572, 572, 671, 571, 571, 914 571, 571, 571, 571, 86, 674, 573, 663, 86, 86, 915 676, 678, 86, 572, 86, 86, 572, 673, 572, 572, 916 917 86, 86, 86, 86, 86, 86, 679, 681, 86, 683, 918 653, 86, 86, 86, 86, 682, 86, 572, 86, 684, 919 693, 86, 572, 692, 685, 686, 694, 687, 86, 691, 920 688, 689, 690, 696, 86, 86, 86, 695, 651, 651, 921 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, 922 86, 86, 86, 86, 718, 710, 572, 714, 713, 572, 923 711, 712, 572, 86, 86, 572, 716, 717, 86, 86, 924 652, 723, 86, 715, 719, 721, 703, 572, 720, 86, 925 726, 86, 572, 572, 724, 86, 86, 86, 572, 571, 926 571, 571, 571, 571, 571, 725, 86, 730, 86, 86, 927 928 722, 727, 86, 86, 86, 86, 86, 86, 733, 728, 929 729, 86, 86, 732, 86, 86, 731, 86, 86, 736, 930 752, 653, 86, 737, 86, 86, 734, 753, 754, 735, 931 651, 651, 651, 651, 651, 651, 86, 750, 86, 751, 932 759, 757, 86, 86, 86, 760, 761, 755, 86, 758, 933 86, 756, 86, 763, 86, 762, 86, 764, 86, 765, 934 86, 86, 703, 782, 86, 86, 786, 86, 784, 86, 935 86, 86, 787, 86, 789, 86, 781, 780, 790, 779, 936 86, 86, 785, 783, 86, 86, 86, 802, 801, 791, 937 86, 86, 788, 804, 800, 803, 86, 86, 86, 806, 938 939 807, 86, 805, 86, 86, 86, 811, 810, 812, 86, 940 86, 86, 813, 814, 815, 86, 86, 86, 818, 817, 941 819, 86, 86, 816, 86, 821, 821, 799, 821, 798, 942 821, 796, 821, 795, 821, 794, 821, 793, 820, 68, 789 104, 104, 118, 86, 119, 120, 256, 86, 257, 86, 790 176, 86, 159, 105, 190, 86, 177, 106, 162, 160, 791 178, 201, 107, 108, 156, 161, 157, 163, 109, 86, 792 165, 164, 166, 86, 105, 86, 143, 225, 86, 174, 793 110, 167, 243, 251, 86, 86, 175, 202, 107, 86, 794 189, 108, 102, 188, 111, 111, 111, 111, 111, 111, 795 796 245, 183, 241, 226, 191, 244, 252, 242, 256, 184, 797 257, 105, 147, 148, 149, 112, 185, 86, 150, 151, 798 113, 152, 86, 153, 154, 86, 114, 168, 86, 179, 799 180, 155, 105, 242, 247, 169, 264, 170, 115, 181, 800 171, 256, 182, 257, 172, 141, 113, 124, 249, 86, 801 142, 125, 126, 250, 127, 825, 128, 129, 256, 130, 802 257, 131, 265, 186, 79, 80, 81, 81, 81, 79, 803 132, 133, 134, 192, 80, 81, 81, 81, 192, 250, 804 86, 193, 81, 80, 81, 81, 81, 81, 86, 253, 805 135, 143, 278, 136, 81, 80, 82, 82, 82, 81, 806 807 258, 195, 196, 258, 86, 187, 195, 235, 235, 235, 808 235, 256, 86, 257, 256, 256, 257, 257, 416, 825, 809 137, 138, 197, 197, 197, 197, 197, 197, 204, 205, 810 256, 260, 257, 204, 825, 206, 238, 86, 238, 236, 811 206, 239, 239, 239, 239, 239, 239, 86, 825, 207, 812 207, 207, 207, 248, 242, 259, 256, 306, 257, 250, 813 206, 825, 825, 102, 296, 104, 104, 104, 104, 104, 814 104, 86, 241, 240, 86, 208, 825, 249, 206, 256, 815 242, 257, 105, 206, 206, 250, 270, 206, 206, 256, 816 86, 257, 272, 271, 141, 206, 86, 237, 206, 142, 817 818 206, 209, 206, 105, 210, 212, 86, 86, 273, 213, 819 214, 86, 275, 86, 215, 216, 274, 217, 86, 218, 820 86, 86, 86, 86, 276, 825, 86, 291, 219, 220, 821 221, 86, 297, 277, 86, 290, 289, 86, 86, 279, 822 86, 280, 300, 281, 282, 86, 298, 283, 222, 284, 823 294, 223, 292, 293, 285, 286, 287, 86, 288, 86, 824 86, 86, 302, 295, 86, 299, 347, 86, 348, 86, 825 86, 86, 303, 86, 312, 825, 304, 86, 305, 224, 826 228, 228, 228, 228, 228, 228, 309, 301, 307, 308, 827 311, 86, 86, 310, 86, 316, 319, 229, 230, 86, 828 829 86, 230, 86, 313, 86, 317, 141, 333, 86, 360, 830 825, 320, 231, 314, 315, 321, 86, 386, 229, 230, 831 322, 330, 318, 86, 230, 98, 98, 98, 98, 98, 832 98, 323, 86, 334, 86, 324, 326, 347, 347, 348, 833 348, 363, 229, 230, 327, 328, 230, 329, 86, 86, 834 204, 205, 325, 390, 348, 204, 347, 234, 348, 545, 835 195, 196, 86, 229, 230, 195, 347, 363, 348, 230, 836 192, 80, 81, 81, 81, 192, 349, 347, 193, 348, 837 373, 197, 197, 197, 197, 197, 197, 195, 196, 405, 838 86, 348, 195, 331, 196, 347, 825, 348, 331, 403, 839 840 332, 339, 339, 339, 339, 347, 373, 348, 197, 197, 841 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 842 347, 350, 348, 347, 347, 348, 348, 104, 104, 104, 843 104, 104, 104, 340, 228, 228, 228, 228, 228, 228, 844 356, 256, 356, 257, 105, 357, 357, 357, 357, 357, 845 357, 229, 230, 229, 230, 230, 256, 230, 257, 248, 846 86, 86, 86, 86, 86, 105, 231, 392, 375, 402, 847 630, 86, 229, 230, 229, 230, 385, 358, 230, 387, 848 230, 239, 239, 239, 239, 239, 239, 361, 361, 361, 849 361, 361, 361, 238, 376, 238, 86, 398, 239, 239, 850 851 239, 239, 239, 239, 366, 230, 813, 825, 230, 104, 852 104, 104, 104, 104, 104, 86, 391, 86, 86, 362, 853 111, 111, 111, 111, 111, 111, 230, 368, 86, 369, 854 394, 230, 370, 388, 86, 389, 395, 396, 371, 86, 855 86, 248, 86, 86, 86, 86, 86, 408, 393, 399, 856 372, 86, 253, 404, 369, 409, 86, 397, 370, 400, 857 401, 86, 406, 407, 86, 86, 86, 86, 410, 86, 858 415, 411, 86, 86, 412, 418, 86, 86, 422, 86, 859 86, 420, 423, 419, 424, 413, 414, 86, 417, 86, 860 86, 421, 86, 86, 86, 86, 86, 86, 86, 426, 861 862 86, 425, 428, 429, 86, 427, 86, 431, 430, 436, 863 86, 86, 432, 141, 435, 86, 434, 86, 433, 441, 864 437, 86, 86, 86, 86, 86, 445, 438, 439, 440, 865 443, 444, 196, 442, 331, 196, 494, 446, 194, 331, 866 495, 332, 206, 206, 206, 206, 339, 339, 339, 339, 867 347, 347, 348, 348, 86, 825, 86, 357, 357, 357, 868 357, 357, 357, 467, 467, 467, 467, 467, 467, 479, 869 356, 86, 356, 497, 456, 357, 357, 357, 357, 357, 870 357, 230, 86, 86, 230, 228, 228, 228, 228, 228, 871 228, 498, 480, 501, 499, 468, 235, 235, 235, 235, 872 873 104, 104, 230, 86, 825, 471, 471, 230, 361, 361, 874 361, 361, 361, 361, 472, 473, 475, 359, 361, 361, 875 361, 361, 361, 361, 514, 86, 230, 86, 360, 230, 876 471, 471, 474, 366, 474, 86, 230, 475, 86, 230, 877 362, 504, 475, 86, 500, 86, 86, 230, 510, 505, 878 469, 825, 230, 496, 502, 812, 368, 230, 369, 503, 879 86, 370, 230, 475, 476, 825, 476, 371, 86, 477, 880 477, 477, 477, 477, 477, 86, 506, 507, 86, 372, 881 86, 86, 86, 369, 513, 86, 509, 370, 368, 86, 882 369, 86, 515, 370, 86, 511, 518, 508, 86, 481, 883 884 86, 478, 512, 86, 516, 86, 517, 86, 86, 86, 885 519, 372, 524, 86, 522, 369, 521, 526, 523, 370, 886 86, 520, 525, 527, 86, 86, 86, 86, 529, 86, 887 86, 528, 86, 86, 86, 533, 86, 86, 86, 531, 888 86, 540, 530, 86, 534, 532, 86, 543, 86, 549, 889 86, 536, 535, 537, 538, 541, 542, 544, 539, 86, 890 86, 86, 196, 548, 600, 471, 471, 546, 552, 551, 891 550, 206, 206, 206, 206, 472, 86, 547, 467, 467, 892 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 893 471, 471, 574, 591, 471, 86, 230, 86, 86, 230, 894 895 86, 86, 230, 573, 86, 230, 86, 86, 592, 86, 896 468, 595, 593, 86, 597, 86, 569, 230, 574, 471, 897 594, 86, 230, 230, 599, 602, 596, 601, 230, 361, 898 361, 361, 361, 361, 361, 570, 603, 570, 611, 86, 899 571, 571, 571, 571, 571, 571, 477, 477, 477, 477, 900 477, 477, 575, 575, 575, 575, 575, 575, 476, 86, 901 476, 469, 86, 477, 477, 477, 477, 477, 477, 86, 902 576, 604, 572, 576, 598, 86, 86, 86, 86, 86, 903 605, 610, 86, 86, 577, 86, 86, 606, 609, 86, 904 607, 576, 612, 86, 613, 614, 576, 86, 86, 616, 905 906 617, 86, 618, 86, 615, 86, 86, 86, 86, 86, 907 620, 623, 86, 86, 619, 86, 621, 624, 622, 86, 908 627, 625, 86, 629, 86, 86, 628, 626, 86, 631, 909 86, 633, 86, 634, 86, 632, 86, 86, 635, 668, 910 86, 673, 636, 637, 467, 467, 467, 467, 467, 467, 911 571, 571, 571, 571, 571, 571, 655, 655, 655, 655, 912 655, 655, 570, 672, 570, 86, 86, 571, 571, 571, 913 571, 571, 571, 86, 576, 669, 569, 576, 575, 575, 914 575, 575, 575, 575, 86, 686, 670, 86, 656, 86, 915 676, 86, 86, 86, 86, 576, 576, 674, 666, 576, 916 917 576, 671, 575, 575, 575, 575, 575, 575, 675, 678, 918 577, 667, 86, 86, 679, 86, 86, 576, 86, 682, 919 576, 684, 576, 576, 86, 677, 86, 86, 86, 86, 920 680, 86, 86, 86, 657, 683, 687, 681, 86, 685, 921 86, 576, 86, 86, 688, 86, 576, 86, 86, 697, 922 689, 690, 693, 698, 691, 692, 696, 695, 86, 86, 923 700, 86, 86, 86, 86, 694, 720, 699, 655, 655, 924 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, 925 714, 86, 719, 86, 86, 726, 576, 716, 86, 576, 926 717, 715, 576, 718, 86, 576, 86, 721, 86, 727, 927 928 656, 86, 722, 730, 723, 724, 707, 576, 86, 86, 929 729, 725, 576, 576, 86, 86, 766, 728, 576, 575, 930 575, 575, 575, 575, 575, 86, 86, 86, 86, 731, 931 86, 86, 86, 86, 86, 738, 86, 86, 732, 733, 932 734, 86, 736, 86, 86, 735, 741, 86, 86, 740, 933 86, 657, 86, 86, 758, 756, 86, 737, 739, 655, 934 655, 655, 655, 655, 655, 755, 759, 754, 757, 86, 935 86, 763, 761, 86, 86, 86, 764, 765, 760, 86, 936 86, 86, 767, 762, 768, 86, 86, 86, 790, 86, 937 769, 707, 786, 86, 86, 86, 788, 86, 86, 86, 938 939 791, 86, 793, 86, 785, 86, 784, 783, 794, 787, 940 795, 86, 789, 86, 86, 86, 86, 792, 805, 806, 941 825, 825, 86, 807, 804, 808, 86, 86, 86, 810, 942 811, 86, 809, 86, 86, 86, 815, 814, 816, 86, 943 86, 86, 817, 818, 819, 86, 86, 86, 822, 821, 944 823, 803, 825, 820, 802, 825, 800, 825, 799, 825, 945 798, 825, 797, 86, 86, 86, 825, 782, 824, 68, 943 946 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 944 68, 68, 68, 68, 68, 68, 74, 74, 74, 74, 945 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 947 68, 74, 74, 74, 74, 74, 74, 74, 74, 74, 946 948 74, 74, 74, 77, 77, 77, 77, 77, 77, 77, 947 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 948 85, 86, 86, 85, 85, 86, 85, 85, 85, 85, 949 950 85, 85, 85, 85, 139, 821, 778, 821, 777, 775, 951 139, 139, 139, 139, 139, 139, 139, 139, 193, 193, 952 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 953 193, 193, 193, 193, 193, 198, 821, 773, 198, 198, 954 821, 198, 198, 198, 198, 198, 198, 198, 198, 202, 955 771, 202, 202, 821, 202, 202, 202, 202, 202, 202, 956 202, 202, 769, 202, 202, 202, 203, 767, 203, 86, 957 203, 86, 203, 86, 86, 86, 203, 203, 86, 203, 958 203, 208, 86, 86, 208, 208, 208, 208, 208, 208, 959 208, 208, 208, 208, 86, 208, 208, 208, 229, 229, 960 961 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 962 229, 229, 229, 229, 229, 243, 243, 243, 86, 243, 963 86, 86, 821, 749, 243, 243, 259, 747, 821, 259, 964 259, 821, 259, 259, 259, 259, 259, 259, 259, 259, 965 263, 263, 744, 263, 742, 740, 821, 86, 263, 263, 966 265, 265, 86, 265, 86, 86, 86, 86, 265, 265, 967 331, 331, 86, 331, 709, 706, 705, 199, 331, 331, 968 333, 333, 699, 333, 698, 635, 86, 86, 333, 333, 969 337, 337, 86, 337, 86, 86, 86, 86, 337, 337, 970 339, 339, 86, 339, 86, 86, 86, 86, 339, 339, 971 972 341, 341, 86, 341, 86, 660, 659, 657, 341, 341, 973 348, 348, 655, 348, 569, 650, 649, 647, 348, 348, 974 350, 350, 645, 350, 643, 641, 639, 637, 350, 350, 975 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 976 229, 229, 229, 229, 229, 229, 229, 361, 361, 635, 977 361, 86, 86, 86, 86, 86, 361, 363, 363, 363, 978 86, 363, 363, 363, 363, 86, 363, 363, 243, 243, 979 243, 86, 243, 86, 86, 86, 586, 584, 243, 373, 980 373, 582, 373, 580, 578, 576, 477, 373, 373, 375, 981 375, 574, 375, 574, 564, 562, 458, 375, 375, 377, 982 983 377, 458, 377, 560, 558, 556, 554, 377, 377, 263, 984 263, 552, 263, 550, 86, 86, 86, 86, 263, 379, 985 379, 86, 379, 86, 86, 86, 489, 379, 379, 265, 986 265, 487, 265, 485, 483, 481, 479, 462, 265, 85, 987 460, 344, 85, 85, 344, 85, 85, 85, 85, 85, 988 85, 85, 85, 193, 193, 193, 193, 193, 193, 193, 989 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 990 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 991 443, 443, 443, 443, 443, 443, 443, 444, 444, 458, 992 444, 456, 454, 451, 449, 444, 444, 446, 446, 447, 993 994 446, 445, 86, 86, 86, 446, 446, 448, 448, 380, 995 448, 378, 376, 374, 260, 448, 448, 331, 331, 255, 996 331, 254, 370, 370, 242, 360, 331, 450, 450, 360, 997 450, 230, 355, 351, 349, 450, 450, 333, 333, 347, 998 333, 343, 342, 340, 338, 334, 333, 453, 453, 332, 999 453, 199, 195, 86, 266, 453, 453, 337, 337, 264, 1000 337, 260, 255, 258, 255, 253, 337, 455, 455, 252, 1001 455, 251, 230, 224, 84, 455, 455, 339, 339, 84, 1002 339, 86, 199, 197, 84, 146, 339, 457, 457, 140, 1003 457, 121, 116, 86, 821, 457, 457, 341, 341, 69, 1004 1005 341, 69, 821, 821, 821, 821, 341, 459, 459, 821, 1006 459, 821, 821, 821, 821, 459, 459, 348, 348, 821, 1007 348, 821, 821, 821, 821, 821, 348, 461, 461, 821, 1008 461, 821, 821, 821, 821, 461, 461, 350, 350, 821, 1009 350, 821, 821, 821, 821, 821, 350, 466, 466, 821, 1010 466, 821, 466, 821, 821, 466, 466, 361, 361, 821, 1011 361, 821, 361, 821, 821, 361, 361, 363, 363, 363, 1012 821, 363, 363, 363, 363, 821, 363, 363, 478, 478, 1013 821, 478, 821, 821, 821, 821, 478, 478, 480, 480, 1014 821, 480, 821, 821, 821, 821, 480, 480, 482, 482, 1015 1016 821, 482, 821, 821, 821, 821, 482, 482, 373, 373, 1017 821, 373, 821, 821, 821, 821, 821, 373, 484, 484, 1018 821, 484, 821, 821, 821, 821, 484, 484, 375, 375, 1019 821, 375, 821, 821, 821, 821, 821, 375, 486, 486, 1020 821, 486, 821, 821, 821, 821, 486, 486, 377, 377, 1021 821, 377, 821, 821, 821, 821, 821, 377, 488, 488, 1022 821, 488, 821, 821, 821, 821, 488, 488, 379, 379, 1023 821, 379, 821, 821, 821, 821, 821, 379, 85, 821, 1024 821, 85, 85, 821, 85, 85, 85, 85, 85, 85, 1025 85, 85, 443, 443, 443, 443, 443, 443, 443, 443, 1026 1027 443, 443, 443, 443, 443, 443, 443, 443, 443, 549, 1028 549, 821, 549, 821, 821, 821, 821, 549, 549, 444, 1029 444, 821, 444, 821, 821, 821, 821, 821, 444, 551, 1030 551, 821, 551, 821, 821, 821, 821, 551, 551, 446, 1031 446, 821, 446, 821, 821, 821, 821, 821, 446, 553, 1032 553, 821, 553, 821, 821, 821, 821, 553, 553, 448, 1033 448, 821, 448, 821, 821, 821, 821, 821, 448, 555, 1034 555, 821, 555, 821, 821, 821, 821, 555, 555, 450, 1035 450, 821, 450, 821, 821, 821, 821, 821, 450, 557, 1036 557, 821, 557, 821, 821, 821, 821, 557, 557, 453, 1037 1038 453, 821, 453, 821, 821, 821, 821, 821, 453, 559, 1039 559, 821, 559, 821, 821, 821, 821, 559, 559, 455, 1040 455, 821, 455, 821, 821, 821, 821, 821, 455, 457, 1041 457, 821, 457, 821, 821, 821, 821, 457, 457, 561, 1042 561, 821, 561, 821, 821, 821, 821, 561, 561, 459, 1043 459, 821, 459, 821, 821, 821, 821, 821, 459, 563, 1044 563, 821, 563, 821, 821, 821, 821, 563, 563, 461, 1045 461, 821, 461, 821, 821, 821, 821, 821, 461, 466, 1046 466, 821, 466, 821, 466, 821, 821, 466, 466, 363, 1047 363, 821, 363, 821, 821, 821, 821, 363, 363, 575, 1048 1049 575, 821, 575, 821, 821, 821, 821, 575, 575, 478, 1050 478, 821, 478, 821, 821, 821, 821, 821, 478, 577, 1051 577, 821, 577, 821, 821, 821, 821, 577, 577, 480, 1052 480, 821, 480, 821, 821, 821, 821, 821, 480, 579, 1053 579, 821, 579, 821, 821, 821, 821, 579, 579, 482, 1054 482, 821, 482, 821, 821, 821, 821, 821, 482, 581, 1055 581, 821, 581, 821, 821, 821, 821, 581, 581, 484, 1056 484, 821, 484, 821, 821, 821, 821, 821, 484, 583, 1057 583, 821, 583, 821, 821, 821, 821, 583, 583, 486, 1058 486, 821, 486, 821, 821, 821, 821, 821, 486, 585, 1059 1060 585, 821, 585, 821, 821, 821, 821, 585, 585, 488, 1061 488, 821, 488, 821, 821, 821, 821, 821, 488, 85, 1062 821, 821, 85, 85, 821, 85, 85, 85, 85, 85, 1063 85, 85, 85, 634, 634, 634, 634, 634, 634, 634, 1064 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 1065 636, 636, 821, 636, 821, 821, 821, 821, 636, 636, 1066 549, 549, 821, 549, 821, 821, 821, 821, 821, 549, 1067 638, 638, 821, 638, 821, 821, 821, 821, 638, 638, 1068 551, 551, 821, 551, 821, 821, 821, 821, 821, 551, 1069 640, 640, 821, 640, 821, 821, 821, 821, 640, 640, 1070 1071 553, 553, 821, 553, 821, 821, 821, 821, 821, 553, 1072 642, 642, 821, 642, 821, 821, 821, 821, 642, 642, 1073 555, 555, 821, 555, 821, 821, 821, 821, 821, 555, 1074 644, 644, 821, 644, 821, 821, 821, 821, 644, 644, 1075 557, 557, 821, 557, 821, 821, 821, 821, 821, 557, 1076 646, 646, 821, 646, 821, 821, 821, 821, 646, 646, 1077 559, 559, 821, 559, 821, 821, 821, 821, 821, 559, 1078 648, 648, 821, 648, 821, 821, 821, 821, 648, 648, 1079 561, 561, 821, 561, 821, 821, 821, 821, 821, 561, 1080 85, 85, 821, 85, 821, 821, 821, 821, 85, 85, 1081 1082 563, 563, 821, 563, 821, 821, 821, 821, 821, 563, 1083 466, 466, 821, 466, 821, 821, 821, 821, 466, 466, 1084 654, 654, 821, 654, 821, 821, 821, 821, 654, 654, 1085 575, 575, 821, 575, 821, 821, 821, 821, 821, 575, 1086 656, 656, 821, 656, 821, 821, 821, 821, 656, 656, 1087 577, 577, 821, 577, 821, 821, 821, 821, 821, 577, 1088 658, 658, 821, 658, 821, 821, 821, 821, 658, 658, 1089 579, 579, 821, 579, 821, 821, 821, 821, 821, 579, 1090 139, 139, 821, 139, 821, 821, 821, 821, 139, 139, 1091 581, 581, 821, 581, 821, 821, 821, 821, 821, 581, 1092 1093 661, 661, 821, 661, 821, 821, 821, 821, 821, 661, 1094 583, 583, 821, 583, 821, 821, 821, 821, 821, 583, 1095 85, 821, 821, 85, 85, 821, 85, 85, 85, 85, 1096 85, 85, 85, 85, 585, 585, 821, 585, 821, 821, 1097 821, 821, 821, 585, 634, 634, 634, 634, 634, 634, 1098 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 1099 634, 697, 697, 821, 697, 821, 821, 821, 821, 697, 1100 697, 636, 636, 821, 636, 821, 821, 821, 821, 821, 1101 636, 198, 198, 821, 198, 821, 821, 821, 821, 198, 1102 198, 638, 638, 821, 638, 821, 821, 821, 821, 821, 1103 1104 638, 700, 700, 821, 700, 821, 821, 821, 821, 821, 1105 700, 640, 640, 821, 640, 821, 821, 821, 821, 821, 1106 640, 198, 821, 821, 198, 198, 821, 198, 198, 198, 1107 198, 198, 198, 198, 198, 642, 642, 821, 642, 821, 1108 821, 821, 821, 821, 642, 701, 701, 821, 701, 821, 1109 821, 821, 821, 821, 701, 644, 644, 821, 644, 821, 1110 821, 821, 821, 821, 644, 646, 646, 821, 646, 821, 1111 821, 821, 821, 821, 646, 702, 702, 821, 702, 821, 1112 821, 821, 821, 821, 702, 648, 648, 821, 648, 821, 1113 821, 821, 821, 821, 648, 85, 85, 821, 85, 821, 1114 1115 821, 821, 821, 821, 85, 704, 704, 821, 704, 821, 1116 821, 821, 821, 704, 704, 654, 654, 821, 654, 821, 1117 821, 821, 821, 821, 654, 259, 259, 821, 259, 821, 1118 821, 821, 821, 259, 259, 656, 656, 821, 656, 821, 1119 821, 821, 821, 821, 656, 707, 707, 821, 707, 821, 1120 821, 821, 821, 821, 707, 658, 658, 821, 658, 821, 1121 821, 821, 821, 821, 658, 139, 139, 821, 139, 821, 1122 821, 821, 821, 821, 139, 708, 708, 821, 708, 821, 1123 821, 821, 821, 708, 708, 85, 821, 821, 85, 85, 1124 821, 85, 85, 85, 85, 85, 85, 85, 85, 738, 1125 1126 738, 821, 738, 821, 821, 821, 821, 821, 738, 697, 1127 697, 821, 697, 821, 821, 821, 821, 821, 697, 739, 1128 739, 821, 739, 821, 821, 821, 821, 739, 739, 741, 1129 741, 821, 741, 821, 821, 821, 821, 741, 741, 743, 1130 743, 821, 743, 821, 821, 821, 821, 743, 743, 745, 1131 745, 821, 745, 821, 821, 821, 821, 821, 745, 746, 1132 746, 821, 746, 821, 821, 821, 821, 746, 746, 748, 1133 748, 821, 748, 821, 821, 821, 821, 748, 748, 766, 1134 766, 821, 766, 821, 821, 821, 821, 766, 766, 768, 1135 768, 821, 768, 821, 821, 821, 821, 768, 768, 770, 1136 1137 770, 821, 770, 821, 821, 821, 821, 770, 770, 772, 1138 772, 821, 772, 821, 821, 821, 821, 772, 772, 774, 1139 774, 821, 774, 821, 821, 821, 821, 774, 774, 776, 1140 776, 821, 776, 821, 821, 821, 821, 776, 776, 585, 1141 585, 821, 585, 821, 821, 821, 821, 585, 585, 792, 1142 792, 821, 792, 821, 821, 821, 821, 792, 792, 642, 1143 642, 821, 642, 821, 821, 821, 821, 642, 642, 646, 1144 646, 821, 646, 821, 821, 821, 821, 646, 646, 85, 1145 85, 821, 85, 821, 821, 821, 821, 85, 85, 797, 1146 797, 821, 797, 821, 821, 821, 821, 797, 797, 139, 1147 1148 139, 821, 139, 821, 821, 821, 821, 139, 139, 198, 1149 198, 821, 198, 821, 821, 821, 821, 198, 198, 11, 1150 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1151 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1152 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1153 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1154 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1155 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1156 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1157 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1158 1159 821, 821, 821, 821 949 950 77, 77, 77, 77, 77, 85, 825, 781, 85, 85, 951 85, 85, 85, 85, 139, 779, 825, 777, 139, 139, 952 139, 139, 139, 194, 194, 194, 194, 194, 194, 194, 953 194, 194, 194, 194, 194, 199, 825, 775, 199, 199, 954 199, 199, 199, 199, 203, 825, 203, 203, 773, 203, 955 203, 203, 203, 203, 771, 203, 211, 86, 86, 211, 956 211, 211, 211, 211, 211, 211, 86, 211, 232, 232, 957 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 958 246, 246, 246, 86, 86, 86, 246, 262, 86, 86, 959 262, 262, 262, 262, 262, 262, 266, 266, 86, 86, 960 961 86, 266, 268, 268, 86, 825, 753, 268, 335, 335, 962 751, 825, 825, 335, 337, 337, 748, 746, 744, 337, 963 341, 341, 825, 86, 86, 341, 343, 343, 86, 86, 964 86, 343, 345, 345, 86, 86, 713, 345, 352, 352, 965 710, 709, 200, 352, 354, 354, 703, 702, 639, 354, 966 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 967 232, 232, 365, 365, 367, 367, 367, 367, 367, 86, 968 367, 246, 246, 246, 377, 377, 86, 86, 86, 377, 969 379, 379, 86, 86, 86, 379, 381, 381, 86, 86, 970 86, 381, 266, 266, 383, 383, 86, 86, 86, 383, 971 972 268, 268, 85, 86, 664, 85, 85, 85, 85, 85, 973 85, 194, 194, 194, 194, 194, 194, 194, 194, 194, 974 194, 194, 194, 447, 447, 447, 447, 447, 447, 447, 975 447, 447, 447, 447, 447, 448, 448, 663, 661, 659, 976 448, 450, 450, 573, 654, 653, 450, 452, 452, 651, 977 649, 647, 452, 335, 335, 454, 454, 645, 643, 641, 978 454, 337, 337, 457, 457, 639, 86, 86, 457, 341, 979 341, 459, 459, 86, 86, 86, 459, 343, 343, 461, 980 461, 86, 86, 86, 461, 345, 345, 463, 463, 86, 981 86, 86, 463, 352, 352, 465, 465, 590, 588, 586, 982 983 465, 354, 354, 470, 470, 584, 470, 582, 470, 365, 984 365, 580, 365, 481, 365, 367, 367, 367, 367, 367, 985 578, 367, 482, 482, 578, 568, 566, 482, 484, 484, 986 462, 462, 564, 484, 486, 486, 562, 560, 558, 486, 987 377, 377, 488, 488, 556, 554, 86, 488, 379, 379, 988 490, 490, 86, 86, 86, 490, 381, 381, 492, 492, 989 86, 86, 86, 492, 383, 383, 85, 86, 493, 85, 990 85, 85, 85, 85, 85, 447, 447, 447, 447, 447, 991 447, 447, 447, 447, 447, 447, 447, 553, 553, 491, 992 489, 487, 553, 448, 448, 555, 555, 485, 483, 466, 993 994 555, 450, 450, 557, 557, 464, 348, 348, 557, 452, 995 452, 559, 559, 462, 460, 458, 559, 454, 454, 561, 996 561, 455, 453, 451, 561, 457, 457, 563, 563, 449, 997 86, 86, 563, 459, 459, 461, 461, 86, 384, 382, 998 461, 565, 565, 380, 378, 263, 565, 463, 463, 567, 999 567, 258, 257, 374, 567, 465, 465, 470, 470, 374, 1000 470, 245, 470, 367, 367, 364, 364, 233, 367, 579, 1001 579, 359, 355, 353, 579, 482, 482, 581, 581, 351, 1002 347, 346, 581, 484, 484, 583, 583, 344, 342, 338, 1003 583, 486, 486, 585, 585, 336, 200, 196, 585, 488, 1004 1005 488, 587, 587, 86, 269, 267, 587, 490, 490, 589, 1006 589, 263, 258, 261, 589, 492, 492, 85, 258, 256, 1007 85, 85, 85, 85, 85, 85, 638, 638, 638, 638, 1008 638, 638, 638, 638, 638, 638, 638, 638, 640, 640, 1009 255, 254, 233, 640, 553, 553, 642, 642, 227, 84, 1010 84, 642, 555, 555, 644, 644, 86, 200, 198, 644, 1011 557, 557, 646, 646, 84, 146, 140, 646, 559, 559, 1012 648, 648, 121, 116, 86, 648, 561, 561, 650, 650, 1013 825, 69, 69, 650, 563, 563, 652, 652, 825, 825, 1014 825, 652, 565, 565, 85, 85, 825, 825, 825, 85, 1015 1016 567, 567, 470, 470, 825, 825, 825, 470, 658, 658, 1017 825, 825, 825, 658, 579, 579, 660, 660, 825, 825, 1018 825, 660, 581, 581, 662, 662, 825, 825, 825, 662, 1019 583, 583, 139, 139, 825, 825, 825, 139, 585, 585, 1020 665, 665, 587, 587, 85, 825, 825, 85, 85, 85, 1021 85, 85, 85, 589, 589, 638, 638, 638, 638, 638, 1022 638, 638, 638, 638, 638, 638, 638, 701, 701, 825, 1023 825, 825, 701, 640, 640, 199, 199, 825, 825, 825, 1024 199, 642, 642, 704, 704, 644, 644, 199, 825, 825, 1025 199, 199, 199, 199, 199, 199, 646, 646, 705, 705, 1026 1027 648, 648, 650, 650, 706, 706, 652, 652, 85, 85, 1028 708, 708, 825, 825, 825, 708, 658, 658, 262, 262, 1029 825, 825, 825, 262, 660, 660, 711, 711, 662, 662, 1030 139, 139, 712, 712, 825, 825, 825, 712, 85, 825, 1031 825, 85, 85, 85, 85, 85, 85, 742, 742, 701, 1032 701, 743, 743, 825, 825, 825, 743, 745, 745, 825, 1033 825, 825, 745, 747, 747, 825, 825, 825, 747, 749, 1034 749, 750, 750, 825, 825, 825, 750, 752, 752, 825, 1035 825, 825, 752, 770, 770, 825, 825, 825, 770, 772, 1036 772, 825, 825, 825, 772, 774, 774, 825, 825, 825, 1037 1038 774, 776, 776, 825, 825, 825, 776, 778, 778, 825, 1039 825, 825, 778, 780, 780, 825, 825, 825, 780, 589, 1040 589, 825, 825, 825, 589, 796, 796, 825, 825, 825, 1041 796, 646, 646, 825, 825, 825, 646, 650, 650, 825, 1042 825, 825, 650, 85, 85, 825, 825, 825, 85, 801, 1043 801, 825, 825, 825, 801, 139, 139, 825, 825, 825, 1044 139, 199, 199, 825, 825, 825, 199, 11, 825, 825, 1045 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1046 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1047 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1048 1049 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1050 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1051 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1052 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1053 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1054 825, 825 1160 1055 } ; 1161 1056 1162 static yyconst flex_int16_t yy_chk[ 3605] =1057 static yyconst flex_int16_t yy_chk[2653] = 1163 1058 { 0, 1164 1059 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1181 1076 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1182 1077 5, 5, 5, 5, 5, 5, 5, 7, 8, 9, 1183 10, 37, 37, 20, 48, 9, 10, 5 08, 7, 8,1078 10, 37, 37, 20, 48, 9, 10, 512, 7, 8, 1184 1079 13, 13, 13, 13, 13, 13, 15, 15, 15, 15, 1185 1080 1186 1081 15, 15, 20, 25, 48, 42, 53, 28, 27, 28, 1187 28, 28, 28, 28, 28, 5 08, 820, 25, 29, 25,1082 28, 28, 28, 28, 28, 512, 824, 25, 29, 25, 1188 1083 27, 27, 27, 29, 53, 35, 7, 8, 9, 10, 1189 1084 40, 42, 55, 29, 30, 40, 30, 30, 30, 30, 1190 1085 30, 30, 35, 47, 35, 35, 125, 49, 125, 50, 1191 1086 55, 56, 49, 30, 63, 51, 55, 30, 50, 49, 1192 56, 59, 30, 30, 47, 49, 47, 50, 30, 54,1193 51, 50, 51, 40, 30, 60, 40, 72, 59, 54,1194 30, 51, 86, 107, 113, 45, 54, 819, 30, 58,1195 45, 30, 31, 60, 31, 31, 31, 31, 31, 31,1196 1197 108, 58, 1 63, 72, 63, 106, 107, 113, 86, 58,1198 1 06, 31, 45, 45, 45, 31, 58, 57, 45, 45,1199 31, 45, 52, 45, 45, 163, 31, 52, 45, 57,1200 57, 45, 31, 61, 108, 52, 106, 52, 31, 57,1201 52, 12 6, 57, 126, 52, 61, 31, 38, 112, 171,1202 129, 38, 38, 112, 38, 114, 38, 38, 128, 38,1203 1 28, 38, 67, 67, 129, 140, 129, 67, 130, 171,1087 56, 72, 30, 30, 47, 49, 47, 50, 30, 54, 1088 51, 50, 51, 40, 30, 60, 40, 86, 61, 54, 1089 30, 51, 107, 113, 823, 822, 54, 72, 30, 58, 1090 61, 30, 31, 60, 31, 31, 31, 31, 31, 31, 1091 1092 108, 58, 106, 86, 63, 107, 113, 106, 126, 58, 1093 126, 31, 45, 45, 45, 31, 58, 57, 45, 45, 1094 31, 45, 52, 45, 45, 821, 31, 52, 45, 57, 1095 57, 45, 31, 106, 108, 52, 140, 52, 31, 57, 1096 52, 128, 57, 128, 52, 59, 31, 38, 112, 819, 1097 59, 38, 38, 112, 38, 114, 38, 38, 131, 38, 1098 131, 38, 140, 59, 79, 79, 79, 79, 79, 79, 1204 1099 38, 38, 38, 66, 66, 66, 66, 66, 66, 112, 1205 130, 66, 130, 67, 67, 67, 67, 67, 67, 114, 1206 38, 140, 131, 38, 131, 166, 76, 76, 76, 76, 1207 1208 79, 79, 79, 79, 79, 79, 81, 81, 81, 81, 1209 81, 81, 82, 82, 82, 82, 82, 82, 166, 151, 1210 38, 38, 76, 103, 103, 103, 103, 148, 110, 132, 1211 132, 133, 132, 133, 104, 151, 104, 104, 104, 104, 1212 104, 104, 134, 134, 134, 148, 110, 115, 76, 162, 1213 103, 76, 84, 104, 110, 103, 84, 84, 136, 162, 1214 136, 84, 84, 109, 84, 115, 84, 138, 104, 138, 1215 818, 150, 153, 115, 104, 84, 84, 84, 103, 105, 1216 150, 105, 149, 152, 105, 105, 105, 105, 105, 105, 1217 147, 143, 109, 156, 153, 84, 143, 109, 84, 154, 1218 1219 149, 152, 157, 160, 158, 147, 161, 168, 160, 156, 1220 164, 154, 147, 158, 159, 170, 105, 165, 167, 172, 1221 109, 160, 168, 161, 157, 169, 84, 98, 98, 98, 1222 98, 98, 98, 170, 143, 159, 159, 164, 165, 173, 1223 167, 175, 169, 176, 98, 98, 172, 177, 98, 179, 1224 181, 500, 177, 180, 500, 181, 175, 178, 184, 98, 1225 176, 173, 199, 175, 180, 98, 98, 179, 178, 182, 1226 181, 98, 102, 102, 102, 102, 102, 102, 178, 178, 1227 183, 180, 182, 185, 186, 184, 187, 270, 199, 102, 1228 102, 233, 271, 102, 188, 817, 210, 186, 210, 187, 1229 1230 183, 187, 185, 270, 102, 186, 268, 188, 155, 271, 1231 102, 102, 211, 155, 211, 155, 102, 155, 155, 238, 1232 212, 155, 212, 155, 268, 233, 192, 192, 155, 155, 1233 155, 192, 155, 191, 191, 191, 191, 191, 191, 194, 1234 194, 191, 246, 213, 194, 238, 815, 192, 192, 192, 1235 192, 192, 192, 204, 204, 204, 204, 213, 214, 213, 1236 194, 194, 194, 194, 194, 194, 196, 196, 246, 295, 1237 214, 196, 214, 196, 215, 295, 215, 216, 216, 217, 1238 216, 217, 218, 218, 218, 204, 814, 196, 196, 196, 1239 196, 196, 196, 220, 221, 220, 221, 225, 225, 225, 1240 1241 225, 225, 225, 226, 256, 226, 256, 260, 226, 226, 1242 226, 226, 226, 226, 225, 225, 231, 231, 225, 257, 1243 231, 257, 234, 234, 234, 234, 234, 234, 328, 225, 1244 809, 808, 269, 260, 328, 225, 225, 231, 231, 234, 1245 226, 225, 267, 231, 235, 235, 235, 235, 235, 235, 1246 269, 272, 274, 277, 234, 267, 272, 274, 243, 278, 1247 234, 236, 236, 236, 236, 236, 236, 237, 273, 237, 1248 275, 277, 237, 237, 237, 237, 237, 237, 283, 236, 1249 284, 243, 236, 243, 281, 278, 243, 279, 273, 281, 1250 275, 283, 243, 236, 245, 245, 245, 245, 245, 245, 1251 1252 236, 282, 279, 280, 243, 236, 276, 284, 243, 804, 1253 282, 285, 243, 250, 250, 250, 250, 250, 250, 280, 1254 280, 276, 287, 289, 290, 288, 245, 276, 276, 285, 1255 288, 290, 289, 291, 292, 293, 294, 297, 298, 296, 1256 287, 294, 299, 301, 300, 250, 297, 304, 301, 305, 1257 302, 299, 292, 291, 298, 302, 293, 293, 296, 300, 1258 303, 306, 308, 309, 310, 303, 304, 305, 311, 312, 1259 314, 313, 315, 308, 306, 316, 317, 310, 309, 318, 1260 319, 315, 303, 323, 321, 322, 324, 314, 366, 326, 1261 311, 313, 312, 321, 324, 325, 323, 316, 319, 317, 1262 1263 325, 318, 398, 322, 326, 327, 327, 345, 398, 345, 1264 327, 366, 327, 335, 335, 335, 335, 336, 336, 336, 1265 336, 346, 399, 346, 352, 352, 352, 352, 352, 352, 1266 353, 353, 353, 353, 353, 353, 355, 355, 355, 355, 1267 355, 355, 382, 399, 383, 335, 368, 354, 353, 354, 1268 381, 353, 354, 354, 354, 354, 354, 354, 382, 383, 1269 386, 381, 353, 596, 368, 364, 596, 802, 355, 353, 1270 364, 386, 368, 408, 353, 356, 356, 356, 356, 356, 1271 356, 357, 357, 357, 357, 357, 357, 358, 358, 358, 1272 358, 358, 358, 363, 408, 384, 364, 361, 799, 357, 1273 1274 385, 387, 357, 362, 390, 358, 361, 356, 358, 385, 1275 387, 388, 362, 357, 384, 389, 363, 390, 363, 358, 1276 357, 363, 361, 395, 389, 357, 358, 363, 362, 391, 1277 396, 358, 367, 388, 392, 396, 798, 797, 796, 363, 1278 394, 395, 393, 363, 365, 391, 365, 363, 397, 365, 1279 365, 365, 365, 365, 365, 367, 392, 367, 393, 393, 1280 367, 400, 394, 397, 401, 402, 367, 406, 409, 411, 1281 397, 404, 400, 416, 412, 410, 417, 419, 367, 406, 1282 402, 365, 367, 401, 410, 404, 367, 413, 410, 412, 1283 409, 418, 411, 416, 420, 421, 413, 424, 417, 419, 1284 1285 426, 422, 428, 427, 430, 429, 418, 431, 433, 420, 1286 422, 432, 434, 435, 424, 421, 431, 436, 441, 434, 1287 435, 433, 428, 426, 427, 429, 430, 437, 439, 432, 1288 438, 443, 442, 499, 504, 437, 795, 443, 470, 439, 1289 441, 442, 436, 504, 499, 437, 469, 438, 452, 452, 1290 452, 452, 463, 463, 463, 463, 463, 463, 464, 464, 1291 464, 464, 464, 464, 470, 490, 493, 491, 466, 468, 1292 463, 469, 494, 463, 495, 506, 464, 466, 468, 464, 1293 491, 493, 490, 794, 463, 497, 506, 495, 496, 524, 1294 464, 463, 494, 466, 468, 498, 463, 464, 497, 507, 1295 1296 498, 524, 464, 465, 465, 465, 465, 465, 465, 467, 1297 496, 467, 507, 501, 467, 467, 467, 467, 467, 467, 1298 472, 472, 472, 472, 472, 472, 473, 473, 473, 473, 1299 473, 473, 474, 501, 474, 465, 502, 474, 474, 474, 1300 474, 474, 474, 503, 473, 505, 467, 473, 509, 510, 1301 505, 511, 512, 516, 513, 502, 518, 509, 473, 513, 1302 519, 512, 516, 520, 503, 473, 521, 523, 511, 528, 1303 473, 510, 525, 527, 528, 521, 530, 519, 520, 532, 1304 531, 533, 518, 534, 523, 530, 537, 525, 527, 531, 1305 536, 539, 538, 540, 533, 542, 537, 543, 536, 538, 1306 1307 534, 532, 545, 546, 542, 540, 594, 543, 588, 589, 1308 593, 793, 792, 539, 594, 588, 546, 593, 589, 545, 1309 565, 565, 565, 565, 565, 565, 566, 566, 566, 566, 1310 566, 566, 567, 567, 567, 567, 567, 567, 568, 599, 1311 568, 601, 592, 568, 568, 568, 568, 568, 568, 590, 1312 567, 591, 565, 567, 571, 571, 571, 571, 571, 571, 1313 595, 599, 590, 601, 567, 592, 790, 604, 591, 587, 1314 598, 567, 571, 600, 587, 571, 567, 595, 573, 573, 1315 573, 573, 573, 573, 597, 598, 571, 587, 602, 603, 1316 600, 602, 605, 571, 604, 606, 573, 597, 571, 573, 1317 1318 607, 608, 609, 611, 612, 617, 603, 605, 613, 607, 1319 573, 616, 619, 623, 622, 606, 630, 573, 633, 608, 1320 623, 789, 573, 622, 609, 611, 630, 612, 632, 619, 1321 613, 616, 617, 633, 662, 665, 671, 632, 651, 651, 1322 651, 651, 651, 651, 652, 652, 652, 652, 652, 652, 1323 663, 666, 667, 668, 671, 662, 651, 667, 666, 651, 1324 663, 665, 652, 669, 670, 652, 669, 670, 673, 674, 1325 651, 677, 675, 668, 673, 675, 652, 651, 674, 676, 1326 680, 678, 651, 652, 678, 689, 679, 684, 652, 653, 1327 653, 653, 653, 653, 653, 679, 682, 684, 681, 677, 1328 1329 676, 681, 683, 685, 687, 680, 692, 693, 689, 682, 1330 683, 695, 717, 687, 696, 716, 685, 714, 718, 695, 1331 716, 653, 715, 696, 719, 720, 692, 717, 718, 693, 1332 703, 703, 703, 703, 703, 703, 722, 714, 721, 715, 1333 723, 721, 725, 727, 731, 725, 727, 719, 728, 722, 1334 729, 720, 750, 729, 730, 728, 752, 730, 753, 731, 1335 754, 755, 703, 754, 758, 756, 759, 723, 756, 760, 1336 762, 763, 760, 780, 763, 764, 753, 752, 764, 750, 1337 765, 781, 758, 755, 782, 785, 783, 782, 781, 765, 1338 784, 759, 762, 784, 780, 783, 788, 791, 800, 788, 1339 1340 791, 801, 785, 810, 811, 803, 801, 800, 803, 805, 1341 806, 807, 805, 806, 807, 812, 816, 813, 812, 811, 1342 813, 787, 786, 810, 779, 778, 777, 776, 775, 774, 1343 773, 772, 771, 770, 769, 768, 767, 766, 816, 822, 1344 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, 1345 822, 822, 822, 822, 822, 822, 823, 823, 823, 823, 1346 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 1347 823, 823, 823, 824, 824, 824, 824, 824, 824, 824, 1348 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 1349 825, 761, 757, 825, 825, 751, 825, 825, 825, 825, 1350 1351 825, 825, 825, 825, 826, 749, 748, 747, 746, 745, 1352 826, 826, 826, 826, 826, 826, 826, 826, 827, 827, 1353 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 1354 827, 827, 827, 827, 827, 828, 744, 743, 828, 828, 1355 742, 828, 828, 828, 828, 828, 828, 828, 828, 829, 1356 741, 829, 829, 740, 829, 829, 829, 829, 829, 829, 1357 829, 829, 739, 829, 829, 829, 830, 738, 830, 737, 1358 830, 736, 830, 735, 734, 733, 830, 830, 732, 830, 1359 830, 831, 726, 724, 831, 831, 831, 831, 831, 831, 1360 831, 831, 831, 831, 713, 831, 831, 831, 832, 832, 1361 1362 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 1363 832, 832, 832, 832, 832, 833, 833, 833, 712, 833, 1364 711, 710, 709, 708, 833, 833, 834, 707, 706, 834, 1365 834, 705, 834, 834, 834, 834, 834, 834, 834, 834, 1366 835, 835, 702, 835, 701, 700, 699, 694, 835, 835, 1367 836, 836, 691, 836, 690, 688, 686, 672, 836, 836, 1368 837, 837, 664, 837, 661, 656, 654, 642, 837, 837, 1369 838, 838, 638, 838, 636, 634, 631, 629, 838, 838, 1370 839, 839, 628, 839, 627, 626, 625, 624, 839, 839, 1371 840, 840, 621, 840, 620, 618, 615, 614, 840, 840, 1372 1373 841, 841, 610, 841, 585, 581, 579, 577, 841, 841, 1374 842, 842, 575, 842, 569, 563, 561, 559, 842, 842, 1375 843, 843, 557, 843, 555, 553, 551, 549, 843, 843, 1376 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 1377 844, 844, 844, 844, 844, 844, 844, 845, 845, 548, 1378 845, 547, 544, 541, 535, 529, 845, 846, 846, 846, 1379 526, 846, 846, 846, 846, 522, 846, 846, 847, 847, 1380 847, 517, 847, 515, 514, 492, 488, 486, 847, 848, 1381 848, 484, 848, 482, 480, 478, 477, 848, 848, 849, 1382 849, 476, 849, 475, 461, 459, 458, 849, 849, 850, 1383 1384 850, 457, 850, 455, 453, 450, 448, 850, 850, 851, 1385 851, 446, 851, 444, 440, 425, 423, 415, 851, 852, 1386 852, 414, 852, 407, 405, 403, 379, 852, 852, 853, 1387 853, 377, 853, 375, 373, 372, 371, 350, 853, 854, 1388 348, 347, 854, 854, 343, 854, 854, 854, 854, 854, 1389 854, 854, 854, 855, 855, 855, 855, 855, 855, 855, 1390 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 1391 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 1392 856, 856, 856, 856, 856, 856, 856, 857, 857, 341, 1393 857, 339, 337, 333, 331, 857, 857, 858, 858, 330, 1394 1395 858, 329, 320, 307, 286, 858, 858, 859, 859, 265, 1396 859, 263, 262, 261, 259, 859, 859, 860, 860, 258, 1397 860, 253, 249, 248, 244, 241, 860, 861, 861, 240, 1398 861, 229, 228, 223, 222, 861, 861, 862, 862, 219, 1399 862, 209, 207, 206, 205, 201, 862, 863, 863, 200, 1400 863, 198, 193, 174, 145, 863, 863, 864, 864, 144, 1401 864, 139, 137, 135, 127, 124, 864, 865, 865, 123, 1402 865, 119, 100, 97, 94, 865, 865, 866, 866, 92, 1403 866, 85, 71, 69, 65, 44, 866, 867, 867, 39, 1404 867, 36, 33, 18, 11, 867, 867, 868, 868, 4, 1405 1406 868, 3, 0, 0, 0, 0, 868, 869, 869, 0, 1407 869, 0, 0, 0, 0, 869, 869, 870, 870, 0, 1408 870, 0, 0, 0, 0, 0, 870, 871, 871, 0, 1409 871, 0, 0, 0, 0, 871, 871, 872, 872, 0, 1410 872, 0, 0, 0, 0, 0, 872, 873, 873, 0, 1411 873, 0, 873, 0, 0, 873, 873, 874, 874, 0, 1412 874, 0, 874, 0, 0, 874, 874, 875, 875, 875, 1413 0, 875, 875, 875, 875, 0, 875, 875, 876, 876, 1414 0, 876, 0, 0, 0, 0, 876, 876, 877, 877, 1415 0, 877, 0, 0, 0, 0, 877, 877, 878, 878, 1416 1417 0, 878, 0, 0, 0, 0, 878, 878, 879, 879, 1418 0, 879, 0, 0, 0, 0, 0, 879, 880, 880, 1419 0, 880, 0, 0, 0, 0, 880, 880, 881, 881, 1420 0, 881, 0, 0, 0, 0, 0, 881, 882, 882, 1421 0, 882, 0, 0, 0, 0, 882, 882, 883, 883, 1422 0, 883, 0, 0, 0, 0, 0, 883, 884, 884, 1423 0, 884, 0, 0, 0, 0, 884, 884, 885, 885, 1424 0, 885, 0, 0, 0, 0, 0, 885, 886, 0, 1425 0, 886, 886, 0, 886, 886, 886, 886, 886, 886, 1426 886, 886, 887, 887, 887, 887, 887, 887, 887, 887, 1427 1428 887, 887, 887, 887, 887, 887, 887, 887, 887, 888, 1429 888, 0, 888, 0, 0, 0, 0, 888, 888, 889, 1430 889, 0, 889, 0, 0, 0, 0, 0, 889, 890, 1431 890, 0, 890, 0, 0, 0, 0, 890, 890, 891, 1432 891, 0, 891, 0, 0, 0, 0, 0, 891, 892, 1433 892, 0, 892, 0, 0, 0, 0, 892, 892, 893, 1434 893, 0, 893, 0, 0, 0, 0, 0, 893, 894, 1435 894, 0, 894, 0, 0, 0, 0, 894, 894, 895, 1436 895, 0, 895, 0, 0, 0, 0, 0, 895, 896, 1437 896, 0, 896, 0, 0, 0, 0, 896, 896, 897, 1438 1439 897, 0, 897, 0, 0, 0, 0, 0, 897, 898, 1440 898, 0, 898, 0, 0, 0, 0, 898, 898, 899, 1441 899, 0, 899, 0, 0, 0, 0, 0, 899, 900, 1442 900, 0, 900, 0, 0, 0, 0, 900, 900, 901, 1443 901, 0, 901, 0, 0, 0, 0, 901, 901, 902, 1444 902, 0, 902, 0, 0, 0, 0, 0, 902, 903, 1445 903, 0, 903, 0, 0, 0, 0, 903, 903, 904, 1446 904, 0, 904, 0, 0, 0, 0, 0, 904, 905, 1447 905, 0, 905, 0, 905, 0, 0, 905, 905, 906, 1448 906, 0, 906, 0, 0, 0, 0, 906, 906, 907, 1449 1450 907, 0, 907, 0, 0, 0, 0, 907, 907, 908, 1451 908, 0, 908, 0, 0, 0, 0, 0, 908, 909, 1452 909, 0, 909, 0, 0, 0, 0, 909, 909, 910, 1453 910, 0, 910, 0, 0, 0, 0, 0, 910, 911, 1454 911, 0, 911, 0, 0, 0, 0, 911, 911, 912, 1455 912, 0, 912, 0, 0, 0, 0, 0, 912, 913, 1456 913, 0, 913, 0, 0, 0, 0, 913, 913, 914, 1457 914, 0, 914, 0, 0, 0, 0, 0, 914, 915, 1458 915, 0, 915, 0, 0, 0, 0, 915, 915, 916, 1459 916, 0, 916, 0, 0, 0, 0, 0, 916, 917, 1460 1461 917, 0, 917, 0, 0, 0, 0, 917, 917, 918, 1462 918, 0, 918, 0, 0, 0, 0, 0, 918, 919, 1463 0, 0, 919, 919, 0, 919, 919, 919, 919, 919, 1464 919, 919, 919, 920, 920, 920, 920, 920, 920, 920, 1465 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 1466 921, 921, 0, 921, 0, 0, 0, 0, 921, 921, 1467 922, 922, 0, 922, 0, 0, 0, 0, 0, 922, 1468 923, 923, 0, 923, 0, 0, 0, 0, 923, 923, 1469 924, 924, 0, 924, 0, 0, 0, 0, 0, 924, 1470 925, 925, 0, 925, 0, 0, 0, 0, 925, 925, 1471 1472 926, 926, 0, 926, 0, 0, 0, 0, 0, 926, 1473 927, 927, 0, 927, 0, 0, 0, 0, 927, 927, 1474 928, 928, 0, 928, 0, 0, 0, 0, 0, 928, 1475 929, 929, 0, 929, 0, 0, 0, 0, 929, 929, 1476 930, 930, 0, 930, 0, 0, 0, 0, 0, 930, 1477 931, 931, 0, 931, 0, 0, 0, 0, 931, 931, 1478 932, 932, 0, 932, 0, 0, 0, 0, 0, 932, 1479 933, 933, 0, 933, 0, 0, 0, 0, 933, 933, 1480 934, 934, 0, 934, 0, 0, 0, 0, 0, 934, 1481 935, 935, 0, 935, 0, 0, 0, 0, 935, 935, 1482 1483 936, 936, 0, 936, 0, 0, 0, 0, 0, 936, 1484 937, 937, 0, 937, 0, 0, 0, 0, 937, 937, 1485 938, 938, 0, 938, 0, 0, 0, 0, 938, 938, 1486 939, 939, 0, 939, 0, 0, 0, 0, 0, 939, 1487 940, 940, 0, 940, 0, 0, 0, 0, 940, 940, 1488 941, 941, 0, 941, 0, 0, 0, 0, 0, 941, 1489 942, 942, 0, 942, 0, 0, 0, 0, 942, 942, 1490 943, 943, 0, 943, 0, 0, 0, 0, 0, 943, 1491 944, 944, 0, 944, 0, 0, 0, 0, 944, 944, 1492 945, 945, 0, 945, 0, 0, 0, 0, 0, 945, 1493 1494 946, 946, 0, 946, 0, 0, 0, 0, 0, 946, 1495 947, 947, 0, 947, 0, 0, 0, 0, 0, 947, 1496 948, 0, 0, 948, 948, 0, 948, 948, 948, 948, 1497 948, 948, 948, 948, 949, 949, 0, 949, 0, 0, 1498 0, 0, 0, 949, 950, 950, 950, 950, 950, 950, 1499 950, 950, 950, 950, 950, 950, 950, 950, 950, 950, 1500 950, 951, 951, 0, 951, 0, 0, 0, 0, 951, 1501 951, 952, 952, 0, 952, 0, 0, 0, 0, 0, 1502 952, 953, 953, 0, 953, 0, 0, 0, 0, 953, 1503 953, 954, 954, 0, 954, 0, 0, 0, 0, 0, 1504 1505 954, 955, 955, 0, 955, 0, 0, 0, 0, 0, 1506 955, 956, 956, 0, 956, 0, 0, 0, 0, 0, 1507 956, 957, 0, 0, 957, 957, 0, 957, 957, 957, 1508 957, 957, 957, 957, 957, 958, 958, 0, 958, 0, 1509 0, 0, 0, 0, 958, 959, 959, 0, 959, 0, 1510 0, 0, 0, 0, 959, 960, 960, 0, 960, 0, 1511 0, 0, 0, 0, 960, 961, 961, 0, 961, 0, 1512 0, 0, 0, 0, 961, 962, 962, 0, 962, 0, 1513 0, 0, 0, 0, 962, 963, 963, 0, 963, 0, 1514 0, 0, 0, 0, 963, 964, 964, 0, 964, 0, 1515 1516 0, 0, 0, 0, 964, 965, 965, 0, 965, 0, 1517 0, 0, 0, 965, 965, 966, 966, 0, 966, 0, 1518 0, 0, 0, 0, 966, 967, 967, 0, 967, 0, 1519 0, 0, 0, 967, 967, 968, 968, 0, 968, 0, 1520 0, 0, 0, 0, 968, 969, 969, 0, 969, 0, 1521 0, 0, 0, 0, 969, 970, 970, 0, 970, 0, 1522 0, 0, 0, 0, 970, 971, 971, 0, 971, 0, 1523 0, 0, 0, 0, 971, 972, 972, 0, 972, 0, 1524 0, 0, 0, 972, 972, 973, 0, 0, 973, 973, 1525 0, 973, 973, 973, 973, 973, 973, 973, 973, 974, 1526 1527 974, 0, 974, 0, 0, 0, 0, 0, 974, 975, 1528 975, 0, 975, 0, 0, 0, 0, 0, 975, 976, 1529 976, 0, 976, 0, 0, 0, 0, 976, 976, 977, 1530 977, 0, 977, 0, 0, 0, 0, 977, 977, 978, 1531 978, 0, 978, 0, 0, 0, 0, 978, 978, 979, 1532 979, 0, 979, 0, 0, 0, 0, 0, 979, 980, 1533 980, 0, 980, 0, 0, 0, 0, 980, 980, 981, 1534 981, 0, 981, 0, 0, 0, 0, 981, 981, 982, 1535 982, 0, 982, 0, 0, 0, 0, 982, 982, 983, 1536 983, 0, 983, 0, 0, 0, 0, 983, 983, 984, 1537 1538 984, 0, 984, 0, 0, 0, 0, 984, 984, 985, 1539 985, 0, 985, 0, 0, 0, 0, 985, 985, 986, 1540 986, 0, 986, 0, 0, 0, 0, 986, 986, 987, 1541 987, 0, 987, 0, 0, 0, 0, 987, 987, 988, 1542 988, 0, 988, 0, 0, 0, 0, 988, 988, 989, 1543 989, 0, 989, 0, 0, 0, 0, 989, 989, 990, 1544 990, 0, 990, 0, 0, 0, 0, 990, 990, 991, 1545 991, 0, 991, 0, 0, 0, 0, 991, 991, 992, 1546 992, 0, 992, 0, 0, 0, 0, 992, 992, 993, 1547 993, 0, 993, 0, 0, 0, 0, 993, 993, 994, 1548 1549 994, 0, 994, 0, 0, 0, 0, 994, 994, 995, 1550 995, 0, 995, 0, 0, 0, 0, 995, 995, 821, 1551 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1552 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1553 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1554 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1555 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1556 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1557 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1558 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1559 1560 821, 821, 821, 821 1100 154, 66, 81, 81, 81, 81, 81, 81, 59, 114, 1101 38, 59, 154, 38, 82, 82, 82, 82, 82, 82, 1102 1103 129, 67, 67, 130, 818, 59, 67, 103, 103, 103, 1104 103, 133, 298, 133, 129, 130, 129, 130, 298, 109, 1105 38, 38, 67, 67, 67, 67, 67, 67, 76, 76, 1106 134, 134, 134, 76, 103, 76, 105, 171, 105, 103, 1107 76, 105, 105, 105, 105, 105, 105, 161, 109, 76, 1108 76, 76, 76, 109, 110, 132, 132, 171, 132, 115, 1109 76, 813, 103, 104, 161, 104, 104, 104, 104, 104, 1110 104, 147, 110, 105, 148, 76, 109, 115, 76, 136, 1111 110, 136, 104, 76, 76, 115, 147, 76, 76, 138, 1112 149, 138, 148, 147, 143, 76, 151, 104, 76, 143, 1113 1114 76, 76, 76, 104, 76, 84, 152, 150, 149, 84, 1115 84, 153, 151, 157, 84, 84, 150, 84, 158, 84, 1116 156, 165, 162, 163, 152, 812, 808, 158, 84, 84, 1117 84, 159, 162, 153, 155, 157, 156, 143, 164, 155, 1118 167, 155, 165, 155, 155, 160, 163, 155, 84, 155, 1119 160, 84, 159, 159, 155, 155, 155, 168, 155, 169, 1120 170, 172, 167, 160, 166, 164, 213, 173, 213, 177, 1121 806, 175, 168, 176, 177, 236, 169, 179, 170, 84, 1122 98, 98, 98, 98, 98, 98, 175, 166, 172, 173, 1123 176, 181, 178, 175, 180, 179, 181, 98, 98, 271, 1124 1125 183, 98, 182, 178, 184, 180, 186, 200, 189, 236, 1126 803, 181, 98, 178, 178, 182, 185, 271, 98, 98, 1127 183, 189, 180, 187, 98, 102, 102, 102, 102, 102, 1128 102, 184, 188, 200, 440, 185, 187, 214, 215, 214, 1129 215, 241, 102, 102, 187, 188, 102, 188, 275, 186, 1130 204, 204, 186, 275, 217, 204, 218, 102, 218, 440, 1131 193, 193, 287, 102, 102, 193, 217, 241, 217, 102, 1132 192, 192, 192, 192, 192, 192, 219, 219, 192, 219, 1133 249, 193, 193, 193, 193, 193, 193, 195, 195, 287, 1134 285, 216, 195, 197, 197, 220, 802, 220, 197, 285, 1135 1136 197, 207, 207, 207, 207, 216, 249, 216, 195, 195, 1137 195, 195, 195, 195, 197, 197, 197, 197, 197, 197, 1138 221, 221, 221, 223, 224, 223, 224, 237, 237, 237, 1139 237, 237, 237, 207, 228, 228, 228, 228, 228, 228, 1140 229, 259, 229, 259, 237, 229, 229, 229, 229, 229, 1141 229, 228, 228, 234, 234, 228, 260, 234, 260, 237, 1142 541, 272, 277, 270, 284, 237, 228, 277, 263, 284, 1143 541, 281, 228, 228, 234, 234, 270, 229, 228, 272, 1144 234, 238, 238, 238, 238, 238, 238, 239, 239, 239, 1145 239, 239, 239, 240, 263, 240, 276, 281, 240, 240, 1146 1147 240, 240, 240, 240, 246, 239, 801, 800, 239, 248, 1148 248, 248, 248, 248, 248, 279, 276, 273, 274, 239, 1149 253, 253, 253, 253, 253, 253, 239, 246, 278, 246, 1150 279, 239, 246, 273, 282, 274, 279, 279, 246, 280, 1151 286, 248, 291, 283, 288, 290, 292, 291, 278, 282, 1152 246, 294, 253, 286, 246, 292, 295, 280, 246, 283, 1153 283, 293, 288, 290, 296, 297, 300, 301, 293, 299, 1154 297, 294, 302, 304, 295, 300, 303, 305, 304, 306, 1155 307, 302, 305, 301, 306, 296, 296, 308, 299, 309, 1156 314, 303, 311, 312, 313, 315, 316, 317, 319, 307, 1157 1158 318, 306, 309, 311, 320, 308, 321, 313, 312, 318, 1159 324, 322, 314, 325, 317, 326, 316, 327, 315, 324, 1160 319, 329, 330, 328, 386, 385, 329, 320, 321, 322, 1161 327, 328, 332, 326, 331, 331, 385, 330, 332, 331, 1162 386, 331, 339, 339, 339, 339, 340, 340, 340, 340, 1163 349, 350, 349, 350, 388, 799, 325, 356, 356, 356, 1164 356, 356, 356, 357, 357, 357, 357, 357, 357, 370, 1165 358, 392, 358, 388, 339, 358, 358, 358, 358, 358, 1166 358, 357, 389, 390, 357, 359, 359, 359, 359, 359, 1167 359, 389, 370, 392, 390, 357, 360, 360, 360, 360, 1168 1169 360, 360, 357, 403, 798, 365, 366, 357, 361, 361, 1170 361, 361, 361, 361, 365, 366, 372, 359, 362, 362, 1171 362, 362, 362, 362, 403, 395, 361, 396, 360, 361, 1172 365, 366, 368, 367, 372, 391, 362, 368, 387, 362, 1173 361, 395, 372, 400, 391, 393, 394, 361, 400, 396, 1174 362, 797, 361, 387, 393, 796, 367, 362, 367, 394, 1175 397, 367, 362, 368, 369, 371, 369, 367, 399, 369, 1176 369, 369, 369, 369, 369, 398, 397, 397, 402, 367, 1177 401, 404, 408, 367, 402, 405, 399, 367, 371, 415, 1178 371, 406, 404, 371, 413, 401, 408, 398, 410, 371, 1179 1180 412, 369, 401, 420, 405, 414, 406, 416, 417, 421, 1181 410, 371, 415, 422, 414, 371, 413, 417, 414, 371, 1182 423, 412, 416, 420, 424, 425, 426, 428, 422, 430, 1183 431, 421, 435, 432, 433, 426, 434, 436, 443, 424, 1184 438, 435, 423, 437, 428, 425, 442, 438, 445, 443, 1185 439, 431, 430, 432, 433, 436, 437, 439, 434, 441, 1186 446, 504, 447, 442, 504, 473, 470, 441, 447, 446, 1187 445, 456, 456, 456, 456, 470, 494, 441, 467, 467, 1188 467, 467, 467, 467, 468, 468, 468, 468, 468, 468, 1189 473, 470, 474, 494, 472, 495, 467, 497, 499, 467, 1190 1191 498, 501, 468, 472, 500, 468, 506, 505, 495, 794, 1192 467, 499, 497, 503, 501, 507, 468, 467, 474, 472, 1193 498, 515, 467, 468, 503, 506, 500, 505, 468, 469, 1194 469, 469, 469, 469, 469, 471, 507, 471, 515, 793, 1195 471, 471, 471, 471, 471, 471, 476, 476, 476, 476, 1196 476, 476, 477, 477, 477, 477, 477, 477, 478, 514, 1197 478, 469, 508, 478, 478, 478, 478, 478, 478, 502, 1198 477, 508, 471, 477, 502, 509, 510, 511, 522, 513, 1199 509, 514, 523, 516, 477, 524, 520, 510, 513, 517, 1200 511, 477, 516, 525, 517, 520, 477, 527, 528, 523, 1201 1202 524, 529, 525, 531, 522, 536, 532, 537, 534, 538, 1203 528, 532, 535, 543, 527, 540, 529, 534, 531, 544, 1204 537, 535, 542, 540, 546, 549, 538, 536, 547, 542, 1205 550, 544, 592, 546, 597, 543, 791, 790, 547, 592, 1206 596, 597, 549, 550, 569, 569, 569, 569, 569, 569, 1207 570, 570, 570, 570, 570, 570, 571, 571, 571, 571, 1208 571, 571, 572, 596, 572, 610, 593, 572, 572, 572, 1209 572, 572, 572, 594, 571, 593, 569, 571, 575, 575, 1210 575, 575, 575, 575, 595, 610, 594, 600, 571, 598, 1211 600, 599, 603, 591, 602, 571, 575, 598, 591, 575, 1212 1213 571, 595, 577, 577, 577, 577, 577, 577, 599, 602, 1214 575, 591, 601, 604, 603, 605, 606, 575, 607, 606, 1215 577, 608, 575, 577, 609, 601, 612, 611, 613, 615, 1216 604, 616, 620, 617, 577, 607, 611, 605, 621, 609, 1217 623, 577, 627, 634, 612, 637, 577, 626, 608, 627, 1218 613, 615, 620, 634, 616, 617, 626, 623, 636, 666, 1219 637, 669, 672, 673, 680, 621, 673, 636, 655, 655, 1220 655, 655, 655, 655, 656, 656, 656, 656, 656, 656, 1221 666, 667, 672, 670, 675, 680, 655, 669, 671, 655, 1222 670, 667, 656, 671, 674, 656, 678, 674, 677, 681, 1223 1224 655, 683, 675, 684, 677, 678, 656, 655, 679, 732, 1225 683, 679, 655, 656, 682, 696, 732, 682, 656, 657, 1226 657, 657, 657, 657, 657, 686, 685, 681, 684, 685, 1227 688, 687, 689, 691, 693, 696, 697, 700, 686, 687, 1228 688, 699, 691, 723, 722, 689, 700, 718, 719, 699, 1229 720, 657, 724, 721, 722, 720, 783, 693, 697, 707, 1230 707, 707, 707, 707, 707, 719, 723, 718, 721, 725, 1231 726, 727, 725, 729, 731, 735, 729, 731, 724, 733, 1232 754, 734, 733, 726, 734, 756, 757, 759, 763, 758, 1233 735, 707, 758, 760, 762, 766, 760, 764, 727, 767, 1234 1235 764, 769, 767, 784, 757, 768, 756, 754, 768, 759, 1236 769, 785, 762, 763, 787, 789, 786, 766, 785, 786, 1237 782, 781, 788, 787, 784, 788, 792, 795, 804, 792, 1238 795, 805, 789, 814, 815, 807, 805, 804, 807, 809, 1239 810, 811, 809, 810, 811, 816, 820, 817, 816, 815, 1240 817, 780, 779, 814, 778, 777, 776, 775, 774, 773, 1241 772, 771, 770, 765, 761, 755, 753, 752, 820, 826, 1242 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 1243 826, 827, 827, 827, 827, 827, 827, 827, 827, 827, 1244 827, 827, 827, 828, 828, 828, 828, 828, 828, 828, 1245 1246 828, 828, 828, 828, 828, 829, 751, 750, 829, 829, 1247 829, 829, 829, 829, 830, 749, 748, 747, 830, 830, 1248 830, 830, 830, 831, 831, 831, 831, 831, 831, 831, 1249 831, 831, 831, 831, 831, 832, 746, 745, 832, 832, 1250 832, 832, 832, 832, 833, 744, 833, 833, 743, 833, 1251 833, 833, 833, 833, 742, 833, 834, 741, 740, 834, 1252 834, 834, 834, 834, 834, 834, 739, 834, 835, 835, 1253 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 1254 836, 836, 836, 738, 737, 736, 836, 837, 730, 728, 1255 837, 837, 837, 837, 837, 837, 838, 838, 717, 716, 1256 1257 715, 838, 839, 839, 714, 713, 712, 839, 840, 840, 1258 711, 710, 709, 840, 841, 841, 706, 705, 704, 841, 1259 842, 842, 703, 698, 695, 842, 843, 843, 694, 692, 1260 690, 843, 844, 844, 676, 668, 665, 844, 845, 845, 1261 660, 658, 646, 845, 846, 846, 642, 640, 638, 846, 1262 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 1263 847, 847, 848, 848, 849, 849, 849, 849, 849, 635, 1264 849, 850, 850, 850, 851, 851, 633, 632, 631, 851, 1265 852, 852, 630, 629, 628, 852, 853, 853, 625, 624, 1266 622, 853, 854, 854, 855, 855, 619, 618, 614, 855, 1267 1268 856, 856, 857, 589, 585, 857, 857, 857, 857, 857, 1269 857, 858, 858, 858, 858, 858, 858, 858, 858, 858, 1270 858, 858, 858, 859, 859, 859, 859, 859, 859, 859, 1271 859, 859, 859, 859, 859, 860, 860, 583, 581, 579, 1272 860, 861, 861, 573, 567, 565, 861, 862, 862, 563, 1273 561, 559, 862, 863, 863, 864, 864, 557, 555, 553, 1274 864, 865, 865, 866, 866, 552, 551, 548, 866, 867, 1275 867, 868, 868, 545, 539, 533, 868, 869, 869, 870, 1276 870, 530, 526, 521, 870, 871, 871, 872, 872, 519, 1277 518, 496, 872, 873, 873, 874, 874, 492, 490, 488, 1278 1279 874, 875, 875, 876, 876, 486, 876, 484, 876, 877, 1280 877, 482, 877, 481, 877, 878, 878, 878, 878, 878, 1281 480, 878, 879, 879, 479, 465, 463, 879, 880, 880, 1282 462, 461, 459, 880, 881, 881, 457, 454, 452, 881, 1283 882, 882, 883, 883, 450, 448, 444, 883, 884, 884, 1284 885, 885, 429, 427, 419, 885, 886, 886, 887, 887, 1285 418, 411, 409, 887, 888, 888, 889, 407, 383, 889, 1286 889, 889, 889, 889, 889, 890, 890, 890, 890, 890, 1287 890, 890, 890, 890, 890, 890, 890, 891, 891, 381, 1288 379, 377, 891, 892, 892, 893, 893, 376, 375, 354, 1289 1290 893, 894, 894, 895, 895, 352, 351, 347, 895, 896, 1291 896, 897, 897, 345, 343, 341, 897, 898, 898, 899, 1292 899, 337, 335, 334, 899, 900, 900, 901, 901, 333, 1293 323, 310, 901, 902, 902, 903, 903, 289, 268, 266, 1294 903, 904, 904, 265, 264, 262, 904, 905, 905, 906, 1295 906, 261, 256, 252, 906, 907, 907, 908, 908, 251, 1296 908, 247, 908, 909, 909, 244, 243, 232, 909, 910, 1297 910, 231, 226, 225, 910, 911, 911, 912, 912, 222, 1298 212, 210, 912, 913, 913, 914, 914, 209, 208, 202, 1299 914, 915, 915, 916, 916, 201, 199, 194, 916, 917, 1300 1301 917, 918, 918, 174, 145, 144, 918, 919, 919, 920, 1302 920, 139, 137, 135, 920, 921, 921, 922, 127, 124, 1303 922, 922, 922, 922, 922, 922, 923, 923, 923, 923, 1304 923, 923, 923, 923, 923, 923, 923, 923, 924, 924, 1305 123, 119, 100, 924, 925, 925, 926, 926, 97, 94, 1306 92, 926, 927, 927, 928, 928, 85, 71, 69, 928, 1307 929, 929, 930, 930, 65, 44, 39, 930, 931, 931, 1308 932, 932, 36, 33, 18, 932, 933, 933, 934, 934, 1309 11, 4, 3, 934, 935, 935, 936, 936, 0, 0, 1310 0, 936, 937, 937, 938, 938, 0, 0, 0, 938, 1311 1312 939, 939, 940, 940, 0, 0, 0, 940, 941, 941, 1313 0, 0, 0, 941, 942, 942, 943, 943, 0, 0, 1314 0, 943, 944, 944, 945, 945, 0, 0, 0, 945, 1315 946, 946, 947, 947, 0, 0, 0, 947, 948, 948, 1316 949, 949, 950, 950, 951, 0, 0, 951, 951, 951, 1317 951, 951, 951, 952, 952, 953, 953, 953, 953, 953, 1318 953, 953, 953, 953, 953, 953, 953, 954, 954, 0, 1319 0, 0, 954, 955, 955, 956, 956, 0, 0, 0, 1320 956, 957, 957, 958, 958, 959, 959, 960, 0, 0, 1321 960, 960, 960, 960, 960, 960, 961, 961, 962, 962, 1322 1323 963, 963, 964, 964, 965, 965, 966, 966, 967, 967, 1324 968, 968, 0, 0, 0, 968, 969, 969, 970, 970, 1325 0, 0, 0, 970, 971, 971, 972, 972, 973, 973, 1326 974, 974, 975, 975, 0, 0, 0, 975, 976, 0, 1327 0, 976, 976, 976, 976, 976, 976, 977, 977, 978, 1328 978, 979, 979, 0, 0, 0, 979, 980, 980, 0, 1329 0, 0, 980, 981, 981, 0, 0, 0, 981, 982, 1330 982, 983, 983, 0, 0, 0, 983, 984, 984, 0, 1331 0, 0, 984, 985, 985, 0, 0, 0, 985, 986, 1332 986, 0, 0, 0, 986, 987, 987, 0, 0, 0, 1333 1334 987, 988, 988, 0, 0, 0, 988, 989, 989, 0, 1335 0, 0, 989, 990, 990, 0, 0, 0, 990, 991, 1336 991, 0, 0, 0, 991, 992, 992, 0, 0, 0, 1337 992, 993, 993, 0, 0, 0, 993, 994, 994, 0, 1338 0, 0, 994, 995, 995, 0, 0, 0, 995, 996, 1339 996, 0, 0, 0, 996, 997, 997, 0, 0, 0, 1340 997, 998, 998, 0, 0, 0, 998, 825, 825, 825, 1341 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1342 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1343 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1344 1345 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1346 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1347 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1348 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1349 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1350 825, 825 1561 1351 } ; 1562 1352 1563 1353 /* Table of booleans, true if rule could match eol. */ 1564 static yyconst flex_int32_t yy_rule_can_match_eol[17 1] =1354 static yyconst flex_int32_t yy_rule_can_match_eol[172] = 1565 1355 { 0, 1566 1356 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1569 1359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1570 1360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1571 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1572 1362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1573 1363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };1364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; 1575 1365 1576 1366 static yy_state_type yy_last_accepting_state; … … 1600 1390 * Created On : Sat Sep 22 08:58:10 2001 1601 1391 * Last Modified By : Peter A. Buhr 1602 * Last Modified On : Wed Jun 3 22:24:07 20151603 * Update Count : 3 361392 * Last Modified On : Fri Jun 5 17:50:17 2015 1393 * Update Count : 373 1604 1394 */ 1605 1395 #line 19 "lex.ll" … … 1614 1404 #include "lex.h" 1615 1405 #include "ParseNode.h" 1616 #include "parser.h" // YACC generated definitions based on C++ grammar1406 #include "parser.h" // YACC generated definitions based on C++ grammar 1617 1407 1618 1408 char *yyfilename; … … 1621 1411 #define WHITE_RETURN(x) // do nothing 1622 1412 #define NEWLINE_RETURN() WHITE_RETURN('\n') 1623 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext); \1413 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); \ 1624 1414 yylval.tok.loc.file = yyfilename; \ 1625 1415 yylval.tok.loc.line = yylineno; \ … … 1665 1455 1666 1456 1667 #line 1 668 "Parser/lex.cc"1457 #line 1458 "Parser/lex.cc" 1668 1458 1669 1459 #define INITIAL 0 … … 1859 1649 register int yy_act; 1860 1650 1861 #line 14 0"lex.ll"1651 #line 142 "lex.ll" 1862 1652 1863 1653 /* line directives */ 1864 #line 1 865 "Parser/lex.cc"1654 #line 1655 "Parser/lex.cc" 1865 1655 1866 1656 if ( !(yy_init) ) … … 1916 1706 { 1917 1707 yy_current_state = (int) yy_def[yy_current_state]; 1918 if ( yy_current_state >= 82 2)1708 if ( yy_current_state >= 826 ) 1919 1709 yy_c = yy_meta[(unsigned int) yy_c]; 1920 1710 } … … 1922 1712 ++yy_cp; 1923 1713 } 1924 while ( yy_base[yy_current_state] != 3520);1714 while ( yy_base[yy_current_state] != 2568 ); 1925 1715 1926 1716 yy_find_action: … … 1959 1749 /* rule 1 can match eol */ 1960 1750 YY_RULE_SETUP 1961 #line 14 2"lex.ll"1751 #line 144 "lex.ll" 1962 1752 { 1963 1753 /* " stop highlighting */ … … 1986 1776 /* rule 2 can match eol */ 1987 1777 YY_RULE_SETUP 1988 #line 16 5"lex.ll"1778 #line 167 "lex.ll" 1989 1779 ; 1990 1780 YY_BREAK … … 1992 1782 case 3: 1993 1783 YY_RULE_SETUP 1994 #line 1 68"lex.ll"1784 #line 170 "lex.ll" 1995 1785 { BEGIN COMMENT; } 1996 1786 YY_BREAK … … 1998 1788 /* rule 4 can match eol */ 1999 1789 YY_RULE_SETUP 2000 #line 1 69"lex.ll"1790 #line 171 "lex.ll" 2001 1791 ; 2002 1792 YY_BREAK 2003 1793 case 5: 2004 1794 YY_RULE_SETUP 2005 #line 17 0"lex.ll"1795 #line 172 "lex.ll" 2006 1796 { BEGIN 0; } 2007 1797 YY_BREAK … … 2010 1800 /* rule 6 can match eol */ 2011 1801 YY_RULE_SETUP 2012 #line 17 3"lex.ll"1802 #line 175 "lex.ll" 2013 1803 ; 2014 1804 YY_BREAK … … 2016 1806 case 7: 2017 1807 YY_RULE_SETUP 2018 #line 17 6"lex.ll"1808 #line 178 "lex.ll" 2019 1809 { WHITE_RETURN(' '); } 2020 1810 YY_BREAK 2021 1811 case 8: 2022 1812 YY_RULE_SETUP 2023 #line 17 7"lex.ll"1813 #line 179 "lex.ll" 2024 1814 { WHITE_RETURN(' '); } 2025 1815 YY_BREAK … … 2027 1817 /* rule 9 can match eol */ 2028 1818 YY_RULE_SETUP 2029 #line 1 78"lex.ll"1819 #line 180 "lex.ll" 2030 1820 { NEWLINE_RETURN(); } 2031 1821 YY_BREAK … … 2033 1823 case 10: 2034 1824 YY_RULE_SETUP 2035 #line 18 1"lex.ll"1825 #line 183 "lex.ll" 2036 1826 { KEYWORD_RETURN(ALIGNAS); } // C11 2037 1827 YY_BREAK 2038 1828 case 11: 2039 1829 YY_RULE_SETUP 2040 #line 18 2"lex.ll"1830 #line 184 "lex.ll" 2041 1831 { KEYWORD_RETURN(ALIGNOF); } // C11 2042 1832 YY_BREAK 2043 1833 case 12: 2044 1834 YY_RULE_SETUP 2045 #line 18 3"lex.ll"1835 #line 185 "lex.ll" 2046 1836 { KEYWORD_RETURN(ALIGNOF); } // GCC 2047 1837 YY_BREAK 2048 1838 case 13: 2049 1839 YY_RULE_SETUP 2050 #line 18 4"lex.ll"1840 #line 186 "lex.ll" 2051 1841 { KEYWORD_RETURN(ALIGNOF); } // GCC 2052 1842 YY_BREAK 2053 1843 case 14: 2054 1844 YY_RULE_SETUP 2055 #line 18 5"lex.ll"1845 #line 187 "lex.ll" 2056 1846 { KEYWORD_RETURN(ASM); } 2057 1847 YY_BREAK 2058 1848 case 15: 2059 1849 YY_RULE_SETUP 2060 #line 18 6"lex.ll"1850 #line 188 "lex.ll" 2061 1851 { KEYWORD_RETURN(ASM); } // GCC 2062 1852 YY_BREAK 2063 1853 case 16: 2064 1854 YY_RULE_SETUP 2065 #line 18 7"lex.ll"1855 #line 189 "lex.ll" 2066 1856 { KEYWORD_RETURN(ASM); } // GCC 2067 1857 YY_BREAK 2068 1858 case 17: 2069 1859 YY_RULE_SETUP 2070 #line 1 88"lex.ll"1860 #line 190 "lex.ll" 2071 1861 { KEYWORD_RETURN(ATOMIC); } // C11 2072 1862 YY_BREAK 2073 1863 case 18: 2074 1864 YY_RULE_SETUP 2075 #line 1 89"lex.ll"1865 #line 191 "lex.ll" 2076 1866 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 2077 1867 YY_BREAK 2078 1868 case 19: 2079 1869 YY_RULE_SETUP 2080 #line 19 0"lex.ll"1870 #line 192 "lex.ll" 2081 1871 { KEYWORD_RETURN(ATTRIBUTE); } // GCC 2082 1872 YY_BREAK 2083 1873 case 20: 2084 1874 YY_RULE_SETUP 2085 #line 19 1"lex.ll"1875 #line 193 "lex.ll" 2086 1876 { KEYWORD_RETURN(AUTO); } 2087 1877 YY_BREAK 2088 1878 case 21: 2089 1879 YY_RULE_SETUP 2090 #line 19 2"lex.ll"1880 #line 194 "lex.ll" 2091 1881 { KEYWORD_RETURN(BOOL); } // C99 2092 1882 YY_BREAK 2093 1883 case 22: 2094 1884 YY_RULE_SETUP 2095 #line 19 3"lex.ll"1885 #line 195 "lex.ll" 2096 1886 { KEYWORD_RETURN(BREAK); } 2097 1887 YY_BREAK 2098 1888 case 23: 2099 1889 YY_RULE_SETUP 2100 #line 19 4"lex.ll"1890 #line 196 "lex.ll" 2101 1891 { KEYWORD_RETURN(CASE); } 2102 1892 YY_BREAK 2103 1893 case 24: 2104 1894 YY_RULE_SETUP 2105 #line 19 5"lex.ll"1895 #line 197 "lex.ll" 2106 1896 { KEYWORD_RETURN(CATCH); } // CFA 2107 1897 YY_BREAK 2108 1898 case 25: 2109 1899 YY_RULE_SETUP 2110 #line 19 6"lex.ll"1900 #line 198 "lex.ll" 2111 1901 { KEYWORD_RETURN(CHAR); } 2112 1902 YY_BREAK 2113 1903 case 26: 2114 1904 YY_RULE_SETUP 2115 #line 19 7"lex.ll"1905 #line 199 "lex.ll" 2116 1906 { KEYWORD_RETURN(CHOOSE); } // CFA 2117 1907 YY_BREAK 2118 1908 case 27: 2119 1909 YY_RULE_SETUP 2120 #line 198"lex.ll"1910 #line 200 "lex.ll" 2121 1911 { KEYWORD_RETURN(COMPLEX); } // C99 2122 1912 YY_BREAK 2123 1913 case 28: 2124 1914 YY_RULE_SETUP 2125 #line 199"lex.ll"1915 #line 201 "lex.ll" 2126 1916 { KEYWORD_RETURN(COMPLEX); } // GCC 2127 1917 YY_BREAK 2128 1918 case 29: 2129 1919 YY_RULE_SETUP 2130 #line 20 0"lex.ll"1920 #line 202 "lex.ll" 2131 1921 { KEYWORD_RETURN(COMPLEX); } // GCC 2132 1922 YY_BREAK 2133 1923 case 30: 2134 1924 YY_RULE_SETUP 2135 #line 20 1"lex.ll"1925 #line 203 "lex.ll" 2136 1926 { KEYWORD_RETURN(CONST); } 2137 1927 YY_BREAK 2138 1928 case 31: 2139 1929 YY_RULE_SETUP 2140 #line 20 2"lex.ll"1930 #line 204 "lex.ll" 2141 1931 { KEYWORD_RETURN(CONST); } // GCC 2142 1932 YY_BREAK 2143 1933 case 32: 2144 1934 YY_RULE_SETUP 2145 #line 20 3"lex.ll"1935 #line 205 "lex.ll" 2146 1936 { KEYWORD_RETURN(CONST); } // GCC 2147 1937 YY_BREAK 2148 1938 case 33: 2149 1939 YY_RULE_SETUP 2150 #line 20 4"lex.ll"1940 #line 206 "lex.ll" 2151 1941 { KEYWORD_RETURN(CONTEXT); } // CFA 2152 1942 YY_BREAK 2153 1943 case 34: 2154 1944 YY_RULE_SETUP 2155 #line 20 5"lex.ll"1945 #line 207 "lex.ll" 2156 1946 { KEYWORD_RETURN(CONTINUE); } 2157 1947 YY_BREAK 2158 1948 case 35: 2159 1949 YY_RULE_SETUP 2160 #line 20 6"lex.ll"1950 #line 208 "lex.ll" 2161 1951 { KEYWORD_RETURN(DEFAULT); } 2162 1952 YY_BREAK 2163 1953 case 36: 2164 1954 YY_RULE_SETUP 2165 #line 20 7"lex.ll"1955 #line 209 "lex.ll" 2166 1956 { KEYWORD_RETURN(DO); } 2167 1957 YY_BREAK 2168 1958 case 37: 2169 1959 YY_RULE_SETUP 2170 #line 2 08"lex.ll"1960 #line 210 "lex.ll" 2171 1961 { KEYWORD_RETURN(DOUBLE); } 2172 1962 YY_BREAK 2173 1963 case 38: 2174 1964 YY_RULE_SETUP 2175 #line 2 09"lex.ll"1965 #line 211 "lex.ll" 2176 1966 { KEYWORD_RETURN(DTYPE); } // CFA 2177 1967 YY_BREAK 2178 1968 case 39: 2179 1969 YY_RULE_SETUP 2180 #line 21 0"lex.ll"1970 #line 212 "lex.ll" 2181 1971 { KEYWORD_RETURN(ELSE); } 2182 1972 YY_BREAK 2183 1973 case 40: 2184 1974 YY_RULE_SETUP 2185 #line 21 1"lex.ll"1975 #line 213 "lex.ll" 2186 1976 { KEYWORD_RETURN(ENUM); } 2187 1977 YY_BREAK 2188 1978 case 41: 2189 1979 YY_RULE_SETUP 2190 #line 21 2"lex.ll"1980 #line 214 "lex.ll" 2191 1981 { KEYWORD_RETURN(EXTENSION); } // GCC 2192 1982 YY_BREAK 2193 1983 case 42: 2194 1984 YY_RULE_SETUP 2195 #line 21 3"lex.ll"1985 #line 215 "lex.ll" 2196 1986 { KEYWORD_RETURN(EXTERN); } 2197 1987 YY_BREAK 2198 1988 case 43: 2199 1989 YY_RULE_SETUP 2200 #line 21 4"lex.ll"1990 #line 216 "lex.ll" 2201 1991 { KEYWORD_RETURN(FALLTHRU); } // CFA 2202 1992 YY_BREAK 2203 1993 case 44: 2204 1994 YY_RULE_SETUP 2205 #line 21 5"lex.ll"1995 #line 217 "lex.ll" 2206 1996 { KEYWORD_RETURN(FINALLY); } // CFA 2207 1997 YY_BREAK 2208 1998 case 45: 2209 1999 YY_RULE_SETUP 2210 #line 21 6"lex.ll"2000 #line 218 "lex.ll" 2211 2001 { KEYWORD_RETURN(FLOAT); } 2212 2002 YY_BREAK 2213 2003 case 46: 2214 2004 YY_RULE_SETUP 2215 #line 21 7"lex.ll"2005 #line 219 "lex.ll" 2216 2006 { KEYWORD_RETURN(FLOAT); } // GCC 2217 2007 YY_BREAK 2218 2008 case 47: 2219 2009 YY_RULE_SETUP 2220 #line 2 18"lex.ll"2010 #line 220 "lex.ll" 2221 2011 { KEYWORD_RETURN(FOR); } 2222 2012 YY_BREAK 2223 2013 case 48: 2224 2014 YY_RULE_SETUP 2225 #line 2 19"lex.ll"2015 #line 221 "lex.ll" 2226 2016 { KEYWORD_RETURN(FORALL); } // CFA 2227 2017 YY_BREAK 2228 2018 case 49: 2229 2019 YY_RULE_SETUP 2230 #line 22 0"lex.ll"2020 #line 222 "lex.ll" 2231 2021 { KEYWORD_RETURN(FORTRAN); } 2232 2022 YY_BREAK 2233 2023 case 50: 2234 2024 YY_RULE_SETUP 2235 #line 22 1"lex.ll"2025 #line 223 "lex.ll" 2236 2026 { KEYWORD_RETURN(FTYPE); } // CFA 2237 2027 YY_BREAK 2238 2028 case 51: 2239 2029 YY_RULE_SETUP 2240 #line 22 2"lex.ll"2030 #line 224 "lex.ll" 2241 2031 { KEYWORD_RETURN(GENERIC); } // C11 2242 2032 YY_BREAK 2243 2033 case 52: 2244 2034 YY_RULE_SETUP 2245 #line 22 3"lex.ll"2035 #line 225 "lex.ll" 2246 2036 { KEYWORD_RETURN(GOTO); } 2247 2037 YY_BREAK 2248 2038 case 53: 2249 2039 YY_RULE_SETUP 2250 #line 22 4"lex.ll"2040 #line 226 "lex.ll" 2251 2041 { KEYWORD_RETURN(IF); } 2252 2042 YY_BREAK 2253 2043 case 54: 2254 2044 YY_RULE_SETUP 2255 #line 22 5"lex.ll"2045 #line 227 "lex.ll" 2256 2046 { KEYWORD_RETURN(IMAGINARY); } // C99 2257 2047 YY_BREAK 2258 2048 case 55: 2259 2049 YY_RULE_SETUP 2260 #line 22 6"lex.ll"2050 #line 228 "lex.ll" 2261 2051 { KEYWORD_RETURN(IMAGINARY); } // GCC 2262 2052 YY_BREAK 2263 2053 case 56: 2264 2054 YY_RULE_SETUP 2265 #line 22 7"lex.ll"2055 #line 229 "lex.ll" 2266 2056 { KEYWORD_RETURN(IMAGINARY); } // GCC 2267 2057 YY_BREAK 2268 2058 case 57: 2269 2059 YY_RULE_SETUP 2270 #line 2 28"lex.ll"2060 #line 230 "lex.ll" 2271 2061 { KEYWORD_RETURN(INLINE); } // C99 2272 2062 YY_BREAK 2273 2063 case 58: 2274 2064 YY_RULE_SETUP 2275 #line 2 29"lex.ll"2065 #line 231 "lex.ll" 2276 2066 { KEYWORD_RETURN(INLINE); } // GCC 2277 2067 YY_BREAK 2278 2068 case 59: 2279 2069 YY_RULE_SETUP 2280 #line 23 0"lex.ll"2070 #line 232 "lex.ll" 2281 2071 { KEYWORD_RETURN(INLINE); } // GCC 2282 2072 YY_BREAK 2283 2073 case 60: 2284 2074 YY_RULE_SETUP 2285 #line 23 1"lex.ll"2075 #line 233 "lex.ll" 2286 2076 { KEYWORD_RETURN(INT); } 2287 2077 YY_BREAK 2288 2078 case 61: 2289 2079 YY_RULE_SETUP 2290 #line 23 2"lex.ll"2080 #line 234 "lex.ll" 2291 2081 { KEYWORD_RETURN(INT); } // GCC 2292 2082 YY_BREAK 2293 2083 case 62: 2294 2084 YY_RULE_SETUP 2295 #line 23 3"lex.ll"2085 #line 235 "lex.ll" 2296 2086 { KEYWORD_RETURN(LABEL); } // GCC 2297 2087 YY_BREAK 2298 2088 case 63: 2299 2089 YY_RULE_SETUP 2300 #line 23 4"lex.ll"2090 #line 236 "lex.ll" 2301 2091 { KEYWORD_RETURN(LONG); } 2302 2092 YY_BREAK 2303 2093 case 64: 2304 2094 YY_RULE_SETUP 2305 #line 23 5"lex.ll"2095 #line 237 "lex.ll" 2306 2096 { KEYWORD_RETURN(LVALUE); } // CFA 2307 2097 YY_BREAK 2308 2098 case 65: 2309 2099 YY_RULE_SETUP 2310 #line 23 6"lex.ll"2100 #line 238 "lex.ll" 2311 2101 { KEYWORD_RETURN(NORETURN); } // C11 2312 2102 YY_BREAK 2313 2103 case 66: 2314 2104 YY_RULE_SETUP 2315 #line 23 7"lex.ll"2105 #line 239 "lex.ll" 2316 2106 { KEYWORD_RETURN(REGISTER); } 2317 2107 YY_BREAK 2318 2108 case 67: 2319 2109 YY_RULE_SETUP 2320 #line 2 38"lex.ll"2110 #line 240 "lex.ll" 2321 2111 { KEYWORD_RETURN(RESTRICT); } // C99 2322 2112 YY_BREAK 2323 2113 case 68: 2324 2114 YY_RULE_SETUP 2325 #line 2 39"lex.ll"2115 #line 241 "lex.ll" 2326 2116 { KEYWORD_RETURN(RESTRICT); } // GCC 2327 2117 YY_BREAK 2328 2118 case 69: 2329 2119 YY_RULE_SETUP 2330 #line 24 0"lex.ll"2120 #line 242 "lex.ll" 2331 2121 { KEYWORD_RETURN(RESTRICT); } // GCC 2332 2122 YY_BREAK 2333 2123 case 70: 2334 2124 YY_RULE_SETUP 2335 #line 24 1"lex.ll"2125 #line 243 "lex.ll" 2336 2126 { KEYWORD_RETURN(RETURN); } 2337 2127 YY_BREAK 2338 2128 case 71: 2339 2129 YY_RULE_SETUP 2340 #line 24 2"lex.ll"2130 #line 244 "lex.ll" 2341 2131 { KEYWORD_RETURN(SHORT); } 2342 2132 YY_BREAK 2343 2133 case 72: 2344 2134 YY_RULE_SETUP 2345 #line 24 3"lex.ll"2135 #line 245 "lex.ll" 2346 2136 { KEYWORD_RETURN(SIGNED); } 2347 2137 YY_BREAK 2348 2138 case 73: 2349 2139 YY_RULE_SETUP 2350 #line 24 4"lex.ll"2140 #line 246 "lex.ll" 2351 2141 { KEYWORD_RETURN(SIGNED); } // GCC 2352 2142 YY_BREAK 2353 2143 case 74: 2354 2144 YY_RULE_SETUP 2355 #line 24 5"lex.ll"2145 #line 247 "lex.ll" 2356 2146 { KEYWORD_RETURN(SIGNED); } // GCC 2357 2147 YY_BREAK 2358 2148 case 75: 2359 2149 YY_RULE_SETUP 2360 #line 24 6"lex.ll"2150 #line 248 "lex.ll" 2361 2151 { KEYWORD_RETURN(SIZEOF); } 2362 2152 YY_BREAK 2363 2153 case 76: 2364 2154 YY_RULE_SETUP 2365 #line 24 7"lex.ll"2155 #line 249 "lex.ll" 2366 2156 { KEYWORD_RETURN(STATIC); } 2367 2157 YY_BREAK 2368 2158 case 77: 2369 2159 YY_RULE_SETUP 2370 #line 2 48"lex.ll"2160 #line 250 "lex.ll" 2371 2161 { KEYWORD_RETURN(STATICASSERT); } // C11 2372 2162 YY_BREAK 2373 2163 case 78: 2374 2164 YY_RULE_SETUP 2375 #line 2 49"lex.ll"2165 #line 251 "lex.ll" 2376 2166 { KEYWORD_RETURN(STRUCT); } 2377 2167 YY_BREAK 2378 2168 case 79: 2379 2169 YY_RULE_SETUP 2380 #line 25 0"lex.ll"2170 #line 252 "lex.ll" 2381 2171 { KEYWORD_RETURN(SWITCH); } 2382 2172 YY_BREAK 2383 2173 case 80: 2384 2174 YY_RULE_SETUP 2385 #line 25 1"lex.ll"2175 #line 253 "lex.ll" 2386 2176 { KEYWORD_RETURN(THREADLOCAL); } // C11 2387 2177 YY_BREAK 2388 2178 case 81: 2389 2179 YY_RULE_SETUP 2390 #line 25 2"lex.ll"2180 #line 254 "lex.ll" 2391 2181 { KEYWORD_RETURN(THROW); } // CFA 2392 2182 YY_BREAK 2393 2183 case 82: 2394 2184 YY_RULE_SETUP 2395 #line 25 3"lex.ll"2185 #line 255 "lex.ll" 2396 2186 { KEYWORD_RETURN(TRY); } // CFA 2397 2187 YY_BREAK 2398 2188 case 83: 2399 2189 YY_RULE_SETUP 2400 #line 25 4"lex.ll"2190 #line 256 "lex.ll" 2401 2191 { KEYWORD_RETURN(TYPE); } // CFA 2402 2192 YY_BREAK 2403 2193 case 84: 2404 2194 YY_RULE_SETUP 2405 #line 25 5"lex.ll"2195 #line 257 "lex.ll" 2406 2196 { KEYWORD_RETURN(TYPEDEF); } 2407 2197 YY_BREAK 2408 2198 case 85: 2409 YY_RULE_SETUP2410 #line 256 "lex.ll"2411 { KEYWORD_RETURN(TYPEOF); } // GCC2412 YY_BREAK2413 case 86:2414 YY_RULE_SETUP2415 #line 257 "lex.ll"2416 { KEYWORD_RETURN(TYPEOF); } // GCC2417 YY_BREAK2418 case 87:2419 2199 YY_RULE_SETUP 2420 2200 #line 258 "lex.ll" 2421 2201 { KEYWORD_RETURN(TYPEOF); } // GCC 2422 2202 YY_BREAK 2203 case 86: 2204 YY_RULE_SETUP 2205 #line 259 "lex.ll" 2206 { KEYWORD_RETURN(TYPEOF); } // GCC 2207 YY_BREAK 2208 case 87: 2209 YY_RULE_SETUP 2210 #line 260 "lex.ll" 2211 { KEYWORD_RETURN(TYPEOF); } // GCC 2212 YY_BREAK 2423 2213 case 88: 2424 2214 YY_RULE_SETUP 2425 #line 2 59"lex.ll"2215 #line 261 "lex.ll" 2426 2216 { KEYWORD_RETURN(UNION); } 2427 2217 YY_BREAK 2428 2218 case 89: 2429 2219 YY_RULE_SETUP 2430 #line 26 0"lex.ll"2220 #line 262 "lex.ll" 2431 2221 { KEYWORD_RETURN(UNSIGNED); } 2432 2222 YY_BREAK 2433 2223 case 90: 2434 2224 YY_RULE_SETUP 2435 #line 26 1"lex.ll"2225 #line 263 "lex.ll" 2436 2226 { KEYWORD_RETURN(VOID); } 2437 2227 YY_BREAK 2438 2228 case 91: 2439 2229 YY_RULE_SETUP 2440 #line 26 2"lex.ll"2230 #line 264 "lex.ll" 2441 2231 { KEYWORD_RETURN(VOLATILE); } 2442 2232 YY_BREAK 2443 2233 case 92: 2444 2234 YY_RULE_SETUP 2445 #line 26 3"lex.ll"2235 #line 265 "lex.ll" 2446 2236 { KEYWORD_RETURN(VOLATILE); } // GCC 2447 2237 YY_BREAK 2448 2238 case 93: 2449 2239 YY_RULE_SETUP 2450 #line 26 4"lex.ll"2240 #line 266 "lex.ll" 2451 2241 { KEYWORD_RETURN(VOLATILE); } // GCC 2452 2242 YY_BREAK 2453 2243 case 94: 2454 2244 YY_RULE_SETUP 2455 #line 26 5"lex.ll"2245 #line 267 "lex.ll" 2456 2246 { KEYWORD_RETURN(WHILE); } 2457 2247 YY_BREAK … … 2459 2249 case 95: 2460 2250 YY_RULE_SETUP 2461 #line 2 68"lex.ll"2251 #line 270 "lex.ll" 2462 2252 { IDENTIFIER_RETURN(); } 2463 2253 YY_BREAK 2464 2254 case 96: 2465 2255 YY_RULE_SETUP 2466 #line 2 69"lex.ll"2256 #line 271 "lex.ll" 2467 2257 { ATTRIBUTE_RETURN(); } 2468 2258 YY_BREAK 2469 2259 case 97: 2470 2260 YY_RULE_SETUP 2471 #line 27 0"lex.ll"2261 #line 272 "lex.ll" 2472 2262 { BEGIN BKQUOTE; } 2473 2263 YY_BREAK 2474 2264 case 98: 2475 2265 YY_RULE_SETUP 2476 #line 27 1"lex.ll"2266 #line 273 "lex.ll" 2477 2267 { IDENTIFIER_RETURN(); } 2478 2268 YY_BREAK 2479 2269 case 99: 2480 2270 YY_RULE_SETUP 2481 #line 27 2"lex.ll"2271 #line 274 "lex.ll" 2482 2272 { BEGIN 0; } 2483 2273 YY_BREAK … … 2485 2275 case 100: 2486 2276 YY_RULE_SETUP 2487 #line 27 5"lex.ll"2277 #line 277 "lex.ll" 2488 2278 { NUMERIC_RETURN(ZERO); } // CFA 2489 2279 YY_BREAK 2490 2280 case 101: 2491 2281 YY_RULE_SETUP 2492 #line 27 6"lex.ll"2282 #line 278 "lex.ll" 2493 2283 { NUMERIC_RETURN(ONE); } // CFA 2494 2284 YY_BREAK 2495 2285 case 102: 2496 YY_RULE_SETUP2497 #line 277 "lex.ll"2498 { NUMERIC_RETURN(INTEGERconstant); }2499 YY_BREAK2500 case 103:2501 YY_RULE_SETUP2502 #line 278 "lex.ll"2503 { NUMERIC_RETURN(INTEGERconstant); }2504 YY_BREAK2505 case 104:2506 2286 YY_RULE_SETUP 2507 2287 #line 279 "lex.ll" 2508 2288 { NUMERIC_RETURN(INTEGERconstant); } 2509 2289 YY_BREAK 2290 case 103: 2291 YY_RULE_SETUP 2292 #line 280 "lex.ll" 2293 { NUMERIC_RETURN(INTEGERconstant); } 2294 YY_BREAK 2295 case 104: 2296 YY_RULE_SETUP 2297 #line 281 "lex.ll" 2298 { NUMERIC_RETURN(INTEGERconstant); } 2299 YY_BREAK 2510 2300 case 105: 2511 2301 YY_RULE_SETUP 2512 #line 28 0"lex.ll"2302 #line 282 "lex.ll" 2513 2303 { NUMERIC_RETURN(FLOATINGconstant); } 2514 2304 YY_BREAK 2515 2305 case 106: 2516 2306 YY_RULE_SETUP 2517 #line 28 1"lex.ll"2307 #line 283 "lex.ll" 2518 2308 { NUMERIC_RETURN(FLOATINGconstant); } 2519 2309 YY_BREAK … … 2521 2311 case 107: 2522 2312 YY_RULE_SETUP 2523 #line 28 4"lex.ll"2313 #line 286 "lex.ll" 2524 2314 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2525 2315 YY_BREAK 2526 2316 case 108: 2527 2317 YY_RULE_SETUP 2528 #line 28 5"lex.ll"2318 #line 287 "lex.ll" 2529 2319 { *strtext += std::string( yytext ); } 2530 2320 YY_BREAK … … 2532 2322 /* rule 109 can match eol */ 2533 2323 YY_RULE_SETUP 2534 #line 28 6"lex.ll"2324 #line 288 "lex.ll" 2535 2325 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } 2536 2326 YY_BREAK … … 2539 2329 case 110: 2540 2330 YY_RULE_SETUP 2541 #line 29 0"lex.ll"2331 #line 292 "lex.ll" 2542 2332 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 2543 2333 YY_BREAK 2544 2334 case 111: 2545 2335 YY_RULE_SETUP 2546 #line 29 1"lex.ll"2336 #line 293 "lex.ll" 2547 2337 { *strtext += std::string( yytext ); } 2548 2338 YY_BREAK … … 2550 2340 /* rule 112 can match eol */ 2551 2341 YY_RULE_SETUP 2552 #line 29 2"lex.ll"2553 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }2342 #line 294 "lex.ll" 2343 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 2554 2344 YY_BREAK 2555 2345 /* " stop highlighting */ 2346 /* common character/string constant */ 2556 2347 case 113: 2557 2348 YY_RULE_SETUP 2558 #line 29 5"lex.ll"2349 #line 298 "lex.ll" 2559 2350 { rm_underscore(); *strtext += std::string( yytext ); } 2560 2351 YY_BREAK 2561 2352 case 114: 2562 YY_RULE_SETUP 2563 #line 296 "lex.ll" 2353 /* rule 114 can match eol */ 2354 YY_RULE_SETUP 2355 #line 299 "lex.ll" 2356 {} // continuation 2357 YY_BREAK 2358 case 115: 2359 YY_RULE_SETUP 2360 #line 300 "lex.ll" 2564 2361 { *strtext += std::string( yytext ); } // unknown escape character 2565 2362 YY_BREAK 2566 2363 /* punctuation */ 2567 case 115:2568 YY_RULE_SETUP2569 #line 299 "lex.ll"2570 { ASCIIOP_RETURN(); }2571 YY_BREAK2572 2364 case 116: 2573 YY_RULE_SETUP2574 #line 300 "lex.ll"2575 { ASCIIOP_RETURN(); }2576 YY_BREAK2577 case 117:2578 YY_RULE_SETUP2579 #line 301 "lex.ll"2580 { ASCIIOP_RETURN(); }2581 YY_BREAK2582 case 118:2583 YY_RULE_SETUP2584 #line 302 "lex.ll"2585 { ASCIIOP_RETURN(); }2586 YY_BREAK2587 case 119:2588 2365 YY_RULE_SETUP 2589 2366 #line 303 "lex.ll" 2590 2367 { ASCIIOP_RETURN(); } 2591 2368 YY_BREAK 2592 case 1 20:2369 case 117: 2593 2370 YY_RULE_SETUP 2594 2371 #line 304 "lex.ll" 2595 2372 { ASCIIOP_RETURN(); } 2596 2373 YY_BREAK 2597 case 1 21:2374 case 118: 2598 2375 YY_RULE_SETUP 2599 2376 #line 305 "lex.ll" 2600 { ASCIIOP_RETURN(); } // also operator2601 YY_BREAK 2602 case 1 22:2377 { ASCIIOP_RETURN(); } 2378 YY_BREAK 2379 case 119: 2603 2380 YY_RULE_SETUP 2604 2381 #line 306 "lex.ll" 2605 2382 { ASCIIOP_RETURN(); } 2606 2383 YY_BREAK 2607 case 12 3:2384 case 120: 2608 2385 YY_RULE_SETUP 2609 2386 #line 307 "lex.ll" 2610 2387 { ASCIIOP_RETURN(); } 2611 2388 YY_BREAK 2389 case 121: 2390 YY_RULE_SETUP 2391 #line 308 "lex.ll" 2392 { ASCIIOP_RETURN(); } 2393 YY_BREAK 2394 case 122: 2395 YY_RULE_SETUP 2396 #line 309 "lex.ll" 2397 { ASCIIOP_RETURN(); } // also operator 2398 YY_BREAK 2399 case 123: 2400 YY_RULE_SETUP 2401 #line 310 "lex.ll" 2402 { ASCIIOP_RETURN(); } 2403 YY_BREAK 2612 2404 case 124: 2613 2405 YY_RULE_SETUP 2614 #line 308 "lex.ll" 2406 #line 311 "lex.ll" 2407 { ASCIIOP_RETURN(); } 2408 YY_BREAK 2409 case 125: 2410 YY_RULE_SETUP 2411 #line 312 "lex.ll" 2615 2412 { ASCIIOP_RETURN(); } // also operator 2616 2413 YY_BREAK 2617 case 12 5:2618 YY_RULE_SETUP 2619 #line 3 09"lex.ll"2414 case 126: 2415 YY_RULE_SETUP 2416 #line 313 "lex.ll" 2620 2417 { NAMEDOP_RETURN(ELLIPSIS); } 2621 2418 YY_BREAK 2622 2419 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */ 2623 case 12 6:2624 YY_RULE_SETUP 2625 #line 31 2"lex.ll"2420 case 127: 2421 YY_RULE_SETUP 2422 #line 316 "lex.ll" 2626 2423 { RETURN_VAL('['); } 2627 2424 YY_BREAK 2628 case 12 7:2629 YY_RULE_SETUP 2630 #line 31 3"lex.ll"2425 case 128: 2426 YY_RULE_SETUP 2427 #line 317 "lex.ll" 2631 2428 { RETURN_VAL(']'); } 2632 2429 YY_BREAK 2633 case 12 8:2634 YY_RULE_SETUP 2635 #line 31 4"lex.ll"2430 case 129: 2431 YY_RULE_SETUP 2432 #line 318 "lex.ll" 2636 2433 { RETURN_VAL('{'); } 2637 2434 YY_BREAK 2638 case 1 29:2639 YY_RULE_SETUP 2640 #line 31 5"lex.ll"2435 case 130: 2436 YY_RULE_SETUP 2437 #line 319 "lex.ll" 2641 2438 { RETURN_VAL('}'); } 2642 2439 YY_BREAK 2643 2440 /* operators */ 2644 case 130:2645 YY_RULE_SETUP2646 #line 318 "lex.ll"2647 { ASCIIOP_RETURN(); }2648 YY_BREAK2649 2441 case 131: 2650 YY_RULE_SETUP2651 #line 319 "lex.ll"2652 { ASCIIOP_RETURN(); }2653 YY_BREAK2654 case 132:2655 YY_RULE_SETUP2656 #line 320 "lex.ll"2657 { ASCIIOP_RETURN(); }2658 YY_BREAK2659 case 133:2660 YY_RULE_SETUP2661 #line 321 "lex.ll"2662 { ASCIIOP_RETURN(); }2663 YY_BREAK2664 case 134:2665 2442 YY_RULE_SETUP 2666 2443 #line 322 "lex.ll" 2667 2444 { ASCIIOP_RETURN(); } 2668 2445 YY_BREAK 2669 case 13 5:2446 case 132: 2670 2447 YY_RULE_SETUP 2671 2448 #line 323 "lex.ll" 2672 2449 { ASCIIOP_RETURN(); } 2673 2450 YY_BREAK 2674 case 13 6:2451 case 133: 2675 2452 YY_RULE_SETUP 2676 2453 #line 324 "lex.ll" 2677 2454 { ASCIIOP_RETURN(); } 2678 2455 YY_BREAK 2679 case 13 7:2456 case 134: 2680 2457 YY_RULE_SETUP 2681 2458 #line 325 "lex.ll" 2682 2459 { ASCIIOP_RETURN(); } 2683 2460 YY_BREAK 2684 case 13 8:2461 case 135: 2685 2462 YY_RULE_SETUP 2686 2463 #line 326 "lex.ll" 2687 2464 { ASCIIOP_RETURN(); } 2688 2465 YY_BREAK 2689 case 13 9:2466 case 136: 2690 2467 YY_RULE_SETUP 2691 2468 #line 327 "lex.ll" 2692 2469 { ASCIIOP_RETURN(); } 2693 2470 YY_BREAK 2694 case 1 40:2471 case 137: 2695 2472 YY_RULE_SETUP 2696 2473 #line 328 "lex.ll" 2697 2474 { ASCIIOP_RETURN(); } 2698 2475 YY_BREAK 2699 case 1 41:2476 case 138: 2700 2477 YY_RULE_SETUP 2701 2478 #line 329 "lex.ll" 2702 2479 { ASCIIOP_RETURN(); } 2703 2480 YY_BREAK 2704 case 1 42:2481 case 139: 2705 2482 YY_RULE_SETUP 2706 2483 #line 330 "lex.ll" 2707 2484 { ASCIIOP_RETURN(); } 2708 2485 YY_BREAK 2709 case 14 3:2486 case 140: 2710 2487 YY_RULE_SETUP 2711 2488 #line 331 "lex.ll" 2712 2489 { ASCIIOP_RETURN(); } 2713 2490 YY_BREAK 2491 case 141: 2492 YY_RULE_SETUP 2493 #line 332 "lex.ll" 2494 { ASCIIOP_RETURN(); } 2495 YY_BREAK 2496 case 142: 2497 YY_RULE_SETUP 2498 #line 333 "lex.ll" 2499 { ASCIIOP_RETURN(); } 2500 YY_BREAK 2501 case 143: 2502 YY_RULE_SETUP 2503 #line 334 "lex.ll" 2504 { ASCIIOP_RETURN(); } 2505 YY_BREAK 2714 2506 case 144: 2715 2507 YY_RULE_SETUP 2716 #line 333 "lex.ll" 2508 #line 335 "lex.ll" 2509 { ASCIIOP_RETURN(); } 2510 YY_BREAK 2511 case 145: 2512 YY_RULE_SETUP 2513 #line 337 "lex.ll" 2717 2514 { NAMEDOP_RETURN(ICR); } 2718 2515 YY_BREAK 2719 case 14 5:2720 YY_RULE_SETUP 2721 #line 33 4"lex.ll"2516 case 146: 2517 YY_RULE_SETUP 2518 #line 338 "lex.ll" 2722 2519 { NAMEDOP_RETURN(DECR); } 2723 2520 YY_BREAK 2724 case 14 6:2725 YY_RULE_SETUP 2726 #line 33 5"lex.ll"2521 case 147: 2522 YY_RULE_SETUP 2523 #line 339 "lex.ll" 2727 2524 { NAMEDOP_RETURN(EQ); } 2728 2525 YY_BREAK 2729 case 14 7:2730 YY_RULE_SETUP 2731 #line 3 36"lex.ll"2526 case 148: 2527 YY_RULE_SETUP 2528 #line 340 "lex.ll" 2732 2529 { NAMEDOP_RETURN(NE); } 2733 2530 YY_BREAK 2734 case 14 8:2735 YY_RULE_SETUP 2736 #line 3 37"lex.ll"2531 case 149: 2532 YY_RULE_SETUP 2533 #line 341 "lex.ll" 2737 2534 { NAMEDOP_RETURN(LS); } 2738 2535 YY_BREAK 2739 case 1 49:2740 YY_RULE_SETUP 2741 #line 3 38"lex.ll"2536 case 150: 2537 YY_RULE_SETUP 2538 #line 342 "lex.ll" 2742 2539 { NAMEDOP_RETURN(RS); } 2743 2540 YY_BREAK 2744 case 15 0:2745 YY_RULE_SETUP 2746 #line 3 39"lex.ll"2541 case 151: 2542 YY_RULE_SETUP 2543 #line 343 "lex.ll" 2747 2544 { NAMEDOP_RETURN(LE); } 2748 2545 YY_BREAK 2749 case 15 1:2750 YY_RULE_SETUP 2751 #line 34 0"lex.ll"2546 case 152: 2547 YY_RULE_SETUP 2548 #line 344 "lex.ll" 2752 2549 { NAMEDOP_RETURN(GE); } 2753 2550 YY_BREAK 2754 case 15 2:2755 YY_RULE_SETUP 2756 #line 34 1"lex.ll"2551 case 153: 2552 YY_RULE_SETUP 2553 #line 345 "lex.ll" 2757 2554 { NAMEDOP_RETURN(ANDAND); } 2758 2555 YY_BREAK 2759 case 15 3:2760 YY_RULE_SETUP 2761 #line 34 2"lex.ll"2556 case 154: 2557 YY_RULE_SETUP 2558 #line 346 "lex.ll" 2762 2559 { NAMEDOP_RETURN(OROR); } 2763 2560 YY_BREAK 2764 case 15 4:2765 YY_RULE_SETUP 2766 #line 34 3"lex.ll"2561 case 155: 2562 YY_RULE_SETUP 2563 #line 347 "lex.ll" 2767 2564 { NAMEDOP_RETURN(ARROW); } 2768 2565 YY_BREAK 2769 case 15 5:2770 YY_RULE_SETUP 2771 #line 34 4"lex.ll"2566 case 156: 2567 YY_RULE_SETUP 2568 #line 348 "lex.ll" 2772 2569 { NAMEDOP_RETURN(PLUSassign); } 2773 2570 YY_BREAK 2774 case 15 6:2775 YY_RULE_SETUP 2776 #line 34 5"lex.ll"2571 case 157: 2572 YY_RULE_SETUP 2573 #line 349 "lex.ll" 2777 2574 { NAMEDOP_RETURN(MINUSassign); } 2778 2575 YY_BREAK 2779 case 15 7:2780 YY_RULE_SETUP 2781 #line 3 46"lex.ll"2576 case 158: 2577 YY_RULE_SETUP 2578 #line 350 "lex.ll" 2782 2579 { NAMEDOP_RETURN(MULTassign); } 2783 2580 YY_BREAK 2784 case 15 8:2785 YY_RULE_SETUP 2786 #line 3 47"lex.ll"2581 case 159: 2582 YY_RULE_SETUP 2583 #line 351 "lex.ll" 2787 2584 { NAMEDOP_RETURN(DIVassign); } 2788 2585 YY_BREAK 2789 case 1 59:2790 YY_RULE_SETUP 2791 #line 3 48"lex.ll"2586 case 160: 2587 YY_RULE_SETUP 2588 #line 352 "lex.ll" 2792 2589 { NAMEDOP_RETURN(MODassign); } 2793 2590 YY_BREAK 2794 case 16 0:2795 YY_RULE_SETUP 2796 #line 3 49"lex.ll"2591 case 161: 2592 YY_RULE_SETUP 2593 #line 353 "lex.ll" 2797 2594 { NAMEDOP_RETURN(ANDassign); } 2798 2595 YY_BREAK 2799 case 16 1:2800 YY_RULE_SETUP 2801 #line 35 0"lex.ll"2596 case 162: 2597 YY_RULE_SETUP 2598 #line 354 "lex.ll" 2802 2599 { NAMEDOP_RETURN(ORassign); } 2803 2600 YY_BREAK 2804 case 16 2:2805 YY_RULE_SETUP 2806 #line 35 1"lex.ll"2601 case 163: 2602 YY_RULE_SETUP 2603 #line 355 "lex.ll" 2807 2604 { NAMEDOP_RETURN(ERassign); } 2808 2605 YY_BREAK 2809 case 16 3:2810 YY_RULE_SETUP 2811 #line 35 2"lex.ll"2606 case 164: 2607 YY_RULE_SETUP 2608 #line 356 "lex.ll" 2812 2609 { NAMEDOP_RETURN(LSassign); } 2813 2610 YY_BREAK 2814 case 16 4:2815 YY_RULE_SETUP 2816 #line 35 3"lex.ll"2611 case 165: 2612 YY_RULE_SETUP 2613 #line 357 "lex.ll" 2817 2614 { NAMEDOP_RETURN(RSassign); } 2818 2615 YY_BREAK 2819 2616 /* CFA, operator identifier */ 2820 case 16 5:2821 YY_RULE_SETUP 2822 #line 3 56"lex.ll"2617 case 166: 2618 YY_RULE_SETUP 2619 #line 360 "lex.ll" 2823 2620 { IDENTIFIER_RETURN(); } // unary 2824 2621 YY_BREAK 2825 case 16 6:2826 YY_RULE_SETUP 2827 #line 3 57"lex.ll"2622 case 167: 2623 YY_RULE_SETUP 2624 #line 361 "lex.ll" 2828 2625 { IDENTIFIER_RETURN(); } 2829 2626 YY_BREAK 2830 case 16 7:2831 YY_RULE_SETUP 2832 #line 3 58"lex.ll"2627 case 168: 2628 YY_RULE_SETUP 2629 #line 362 "lex.ll" 2833 2630 { IDENTIFIER_RETURN(); } // binary 2834 2631 YY_BREAK … … 2859 2656 an argument list. 2860 2657 */ 2861 case 16 8:2862 YY_RULE_SETUP 2863 #line 38 5"lex.ll"2658 case 169: 2659 YY_RULE_SETUP 2660 #line 389 "lex.ll" 2864 2661 { 2865 2662 // 1 or 2 character unary operator ? … … 2874 2671 YY_BREAK 2875 2672 /* unknown characters */ 2876 case 1 69:2877 YY_RULE_SETUP 2878 #line 397"lex.ll"2673 case 170: 2674 YY_RULE_SETUP 2675 #line 401 "lex.ll" 2879 2676 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2880 2677 YY_BREAK 2881 case 17 0:2882 YY_RULE_SETUP 2883 #line 399"lex.ll"2678 case 171: 2679 YY_RULE_SETUP 2680 #line 403 "lex.ll" 2884 2681 ECHO; 2885 2682 YY_BREAK 2886 #line 2 887"Parser/lex.cc"2683 #line 2684 "Parser/lex.cc" 2887 2684 case YY_STATE_EOF(INITIAL): 2888 2685 case YY_STATE_EOF(COMMENT): … … 3181 2978 { 3182 2979 yy_current_state = (int) yy_def[yy_current_state]; 3183 if ( yy_current_state >= 82 2)2980 if ( yy_current_state >= 826 ) 3184 2981 yy_c = yy_meta[(unsigned int) yy_c]; 3185 2982 } … … 3209 3006 { 3210 3007 yy_current_state = (int) yy_def[yy_current_state]; 3211 if ( yy_current_state >= 82 2)3008 if ( yy_current_state >= 826 ) 3212 3009 yy_c = yy_meta[(unsigned int) yy_c]; 3213 3010 } 3214 3011 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3215 yy_is_jam = (yy_current_state == 82 1);3012 yy_is_jam = (yy_current_state == 825); 3216 3013 3217 3014 return yy_is_jam ? 0 : yy_current_state; … … 3900 3697 #define YYTABLES_NAME "yytables" 3901 3698 3902 #line 399"lex.ll"3699 #line 403 "lex.ll" 3903 3700 3904 3701 -
src/Parser/lex.h
ra65d92e r59db689 10 10 // Created On : Sat Sep 22 08:58:10 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 3 21:53:39 201513 // Update Count : 33 512 // Last Modified On : Sat Jun 6 07:44:39 2015 13 // Update Count : 338 14 14 // 15 15 -
src/Parser/lex.ll
ra65d92e r59db689 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Wed Jun 3 22:24:07 201513 * Update Count : 3 3612 * Last Modified On : Fri Jun 5 17:50:17 2015 13 * Update Count : 373 14 14 */ 15 15 … … 27 27 #include "lex.h" 28 28 #include "ParseNode.h" 29 #include "parser.h" // YACC generated definitions based on C++ grammar29 #include "parser.h" // YACC generated definitions based on C++ grammar 30 30 31 31 char *yyfilename; … … 34 34 #define WHITE_RETURN(x) // do nothing 35 35 #define NEWLINE_RETURN() WHITE_RETURN('\n') 36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext); \36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); \ 37 37 yylval.tok.loc.file = yyfilename; \ 38 38 yylval.tok.loc.line = yylineno; \ … … 114 114 hex_escape "\\""x""_"?{hex_digits} 115 115 escape_seq {simple_escape}|{octal_escape}|{hex_escape}|{universal_char} 116 cwide_prefix "L"|"U"|"u" 117 swide_prefix {cwide_prefix}|"u8" 116 118 117 119 // display/white-space characters … … 275 277 "0" { NUMERIC_RETURN(ZERO); } // CFA 276 278 "1" { NUMERIC_RETURN(ONE); } // CFA 277 {decimal_constant} 278 {octal_constant} 279 {hex_constant} 279 {decimal_constant} { NUMERIC_RETURN(INTEGERconstant); } 280 {octal_constant} { NUMERIC_RETURN(INTEGERconstant); } 281 {hex_constant} { NUMERIC_RETURN(INTEGERconstant); } 280 282 {floating_constant} { NUMERIC_RETURN(FLOATINGconstant); } 281 283 {hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); } 282 284 283 285 /* character constant, allows empty value */ 284 "L"?"_"?[']{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }286 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 285 287 <QUOTE>[^'\\\n]* { *strtext += std::string( yytext ); } 286 288 <QUOTE>['\n] { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); } … … 288 290 289 291 /* string constant */ 290 "L"?"_"?["]{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }292 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); } 291 293 <STRING>[^"\\\n]* { *strtext += std::string( yytext ); } 292 <STRING>["\n] { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }294 <STRING>["\n] { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); } 293 295 /* " stop highlighting */ 294 296 297 /* common character/string constant */ 295 298 <QUOTE,STRING>{escape_seq} { rm_underscore(); *strtext += std::string( yytext ); } 296 <QUOTE,STRING>[\\] { *strtext += std::string( yytext ); } // unknown escape character 299 <QUOTE,STRING>"\\"{h_white}*"\n" {} // continuation 300 <QUOTE,STRING>"\\" { *strtext += std::string( yytext ); } // unknown escape character 297 301 298 302 /* punctuation */ -
src/Parser/parser.cc
ra65d92e r59db689 5190 5190 /* Line 1806 of yacc.c */ 5191 5191 #line 297 "parser.yy" 5192 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok)); }5192 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5193 5193 break; 5194 5194 … … 5197 5197 /* Line 1806 of yacc.c */ 5198 5198 #line 298 "parser.yy" 5199 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok)); }5199 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5200 5200 break; 5201 5201 … … 5204 5204 /* Line 1806 of yacc.c */ 5205 5205 #line 299 "parser.yy" 5206 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok)); }5206 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5207 5207 break; 5208 5208 … … 5211 5211 /* Line 1806 of yacc.c */ 5212 5212 #line 323 "parser.yy" 5213 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok)); }5213 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5214 5214 break; 5215 5215 … … 5218 5218 /* Line 1806 of yacc.c */ 5219 5219 #line 324 "parser.yy" 5220 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->append ( (yyvsp[(2) - (2)].tok) ); }5220 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5221 5221 break; 5222 5222 … … 5659 5659 /* Line 1806 of yacc.c */ 5660 5660 #line 538 "parser.yy" 5661 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList((*(yyvsp[(1) - (5)].en),*(yyvsp[(3) - (5)].en),*(yyvsp[(5) - (5)].en)))); }5661 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5662 5662 break; 5663 5663 … … 5673 5673 /* Line 1806 of yacc.c */ 5674 5674 #line 542 "parser.yy" 5675 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList(( *(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ))); }5675 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5676 5676 break; 5677 5677 -
src/Parser/parser.yy
ra65d92e r59db689 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 4 21:38:06 201513 // Update Count : 102 112 // Last Modified On : Sat Jun 6 20:18:36 2015 13 // Update Count : 1026 14 14 // 15 15 … … 295 295 // ENUMERATIONconstant is not included here; it is treated as a variable with type 296 296 // "enumeration constant". 297 INTEGERconstant { $$ = new ConstantNode( ConstantNode::Integer, $1); }298 | FLOATINGconstant { $$ = new ConstantNode( ConstantNode::Float, $1); }299 | CHARACTERconstant { $$ = new ConstantNode( ConstantNode::Character, $1); }297 INTEGERconstant { $$ = new ConstantNode( ConstantNode::Integer, $1 ); } 298 | FLOATINGconstant { $$ = new ConstantNode( ConstantNode::Float, $1 ); } 299 | CHARACTERconstant { $$ = new ConstantNode( ConstantNode::Character, $1 ); } 300 300 ; 301 301 … … 321 321 322 322 string_literal_list: // juxtaposed strings are concatenated 323 STRINGliteral { $$ = new ConstantNode( ConstantNode::String, $1); }324 | string_literal_list STRINGliteral { $$ = $1->append ( $2 ); }323 STRINGliteral { $$ = new ConstantNode( ConstantNode::String, $1 ); } 324 | string_literal_list STRINGliteral { $$ = $1->appendstr( $2 ); } 325 325 ; 326 326 … … 536 536 logical_OR_expression 537 537 | logical_OR_expression '?' comma_expression ':' conditional_expression 538 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList((*$1,*$3,*$5))); }538 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); } 539 539 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 540 540 { $$=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),$1,$4); } 541 541 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 542 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList(( *$1, *$3, *$5 ))); }542 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); } 543 543 ; 544 544 -
src/SynTree/ArrayType.cc
ra65d92e r59db689 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 4 21:16:46201513 // Update Count : 712 // Last Modified On : Sat Jun 6 14:11:48 2015 13 // Update Count : 9 14 14 // 15 15 … … 50 50 } // if 51 51 if ( dimension ) { 52 os << "with dimension of "; 52 53 dimension->print( os, indent ); 53 54 } // if -
src/SynTree/BasicType.cc
ra65d92e r59db689 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 07:55:16201513 // Update Count : 112 // Last Modified On : Sat Jun 6 11:52:43 2015 13 // Update Count : 2 14 14 // 15 15 -
src/SynTree/Constant.cc
ra65d92e r59db689 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 08:13:25201513 // Update Count : 112 // Last Modified On : Sat Jun 6 12:17:22 2015 13 // Update Count : 2 14 14 // 15 15 … … 20 20 #include "Type.h" 21 21 22 Constant::Constant( Type * _type, std::string _value ) : type(_type), value(_value) {}22 Constant::Constant( Type *type_, std::string value_ ) : type( type_ ), value( value_ ) {} 23 23 24 24 Constant::~Constant() {} -
src/SynTree/Expression.cc
ra65d92e r59db689 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 5 07:51:09 201513 // Update Count : 1 112 // Last Modified On : Sat Jun 6 14:13:39 2015 13 // Update Count : 14 14 14 // 15 15 … … 50 50 } 51 51 52 void Expression::print( std::ostream &os, int indent) const {52 void Expression::print( std::ostream &os, int indent ) const { 53 53 if ( env ) { 54 54 os << std::string( indent, ' ' ) << "with environment:" << std::endl; … … 72 72 73 73 void ConstantExpr::print( std::ostream &os, int indent ) const { 74 os << std::endl; 75 os << std::string( indent, ' ' ) << "dimension of constant expression: " ; 74 os << std::string( indent, ' ' ) << "constant expression: " ; 76 75 constant.print( os ); 77 76 Expression::print( os, indent ); -
src/SynTree/Type.h
ra65d92e r59db689 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:01:40201513 // Update Count : 112 // Last Modified On : Sat Jun 6 14:12:14 2015 13 // Update Count : 2 14 14 // 15 15 … … 110 110 }; 111 111 112 static const char *typeNames[]; // string names for basic types, MUST MATCH with Kind112 static const char *typeNames[]; // string names for basic types, MUST MATCH with Kind 113 113 114 114 BasicType( const Type::Qualifiers &tq, Kind bt ); -
src/examples/constants.c
ra65d92e r59db689 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 27 18:11:03 201513 // Update Count : 312 // Last Modified On : Sat Jun 6 15:08:43 2015 13 // Update Count : 63 14 14 // 15 15 … … 17 17 1_234_Ul; 18 18 -0_177; 19 017777777777; 20 037777777777; 21 0x_7f_FF_ff_FF; 19 22 0x_ff_FF_ff_FF; 20 +9_223_372_036_854_775_807; 21 12.123_333_E_27; 23 2_147_483_647; 24 4_294_967_295; 25 0777777777777777777777; 26 01777777777777777777777; 27 0x_7f_FF_ff_FF_ff_FF_ff_FF; 28 0x_ff_FF_ff_FF_ff_FF_ff_FF; 29 9_223_372_036_854_775_807; 30 18_446_744_073_709_551_615; 31 12.123_333_E_27L; 22 32 0X_1.ff_ff_ff_ff_ff_fff_P_1023; 23 33 '\0'; 24 34 '\1_2_3'; 25 L_'\x_ff_ee'; 26 L"a_bc\u_00_40xyz\xff_AA"; 27 "a_bc\\ 28 u_00_40xyz"; 35 L'\x_ff_ee'; 36 L_"\x_ff_ee"; 37 L"a_b\r\Qyc\u_00_40 x_y_z\xff_AA"; 38 L_"a_b\r\Qyc\u_00_40\ 39 x_y_z\xff_AA"; 40 "abc" "def" "ghi"; 29 41 } 30 42
Note: See TracChangeset
for help on using the changeset viewer.