Changes in src/SynTree/Initializer.cc [84bb4d9:d3b7937]
- File:
-
- 1 edited
-
src/SynTree/Initializer.cc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Initializer.cc
r84bb4d9 rd3b7937 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Initializer.cc -- 7 // Initializer.cc -- 8 8 // 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Tue Apr 26 15:51:35 201613 // Update Count : 2812 // Last Modified On : Wed Aug 12 14:05:25 2015 13 // Update Count : 14 14 14 // 15 15 16 16 #include "Initializer.h" 17 17 #include "Expression.h" 18 #include "Statement.h"19 18 #include "Common/utility.h" 20 19 21 Initializer::Initializer( bool maybeConstructed ) : maybeConstructed( maybeConstructed) {}20 Initializer::Initializer() {} 22 21 23 22 Initializer::~Initializer() {} … … 32 31 void Initializer::print( std::ostream &os, int indent ) {} 33 32 34 SingleInit::SingleInit( Expression *v, const std::list< Expression *> &_designators, bool maybeConstructed ) : Initializer( maybeConstructed ), value ( v ), designators( _designators ) {33 SingleInit::SingleInit( Expression *v, std::list< Expression *> &_designators ) : value ( v ), designators( _designators ) { 35 34 } 36 35 37 SingleInit::SingleInit( const SingleInit &other ) : Initializer(other), value ( maybeClone( other.value )) {36 SingleInit::SingleInit( const SingleInit &other ) : value ( other.value ) { 38 37 cloneAll(other.designators, designators ); 39 38 } … … 55 54 } 56 55 57 ListInit::ListInit( const std::list<Initializer*> &_initializers, const std::list<Expression *> &_designators, bool maybeConstructed)58 : Initializer( maybeConstructed),initializers( _initializers ), designators( _designators ) {56 ListInit::ListInit( std::list<Initializer*> &_initializers, std::list<Expression *> &_designators ) 57 : initializers( _initializers ), designators( _designators ) { 59 58 } 60 59 … … 66 65 67 66 void ListInit::print( std::ostream &os, int indent ) { 68 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 67 os << std::endl << std::string(indent, ' ') << "Compound initializer: "; 69 68 if ( ! designators.empty() ) { 70 69 os << std::string(indent + 2, ' ' ) << "designated by: ["; 71 70 for ( std::list < Expression * >::iterator i = designators.begin(); 72 71 i != designators.end(); i++ ) { 73 ( *i )->print(os, indent + 4 ); 72 ( *i )->print(os, indent + 4 ); 74 73 } // for 75 74 76 75 os << std::string(indent + 2, ' ' ) << "]"; 77 76 } // if 78 77 79 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 78 for ( std::list<Initializer *>::iterator i = initializers.begin(); i != initializers.end(); i++ ) 80 79 (*i)->print( os, indent + 2 ); 81 80 } 82 83 84 ConstructorInit::ConstructorInit( Statement * ctor, Statement * dtor, Initializer * init ) : Initializer( true ), ctor( ctor ), dtor( dtor ), init( init ) {}85 ConstructorInit::~ConstructorInit() {86 delete ctor;87 delete init;88 }89 90 ConstructorInit *ConstructorInit::clone() const {91 return new ConstructorInit( *this );92 }93 94 void ConstructorInit::print( std::ostream &os, int indent ) {95 os << std::endl << std::string(indent, ' ') << "Constructor initializer: " << std::endl;96 if ( ctor ) {97 os << std::string(indent+2, ' ');98 os << "initially constructed with ";99 ctor->print( os, indent+4 );100 } // if101 102 if ( dtor ) {103 os << std::string(indent+2, ' ');104 os << "destructed with ";105 dtor->print( os, indent+4 );106 }107 108 if ( init ) {109 os << std::string(indent+2, ' ');110 os << "with fallback C-style initializer: ";111 init->print( os, indent+4 );112 }113 }114 115 std::ostream & operator<<( std::ostream & out, Initializer * init ) {116 init->print( out );117 return out;118 }119 120 81 // Local Variables: // 121 82 // tab-width: 4 //
Note:
See TracChangeset
for help on using the changeset viewer.