Changes in src/SynTree/Initializer.cc [7a69460:d3b7937]
- File:
-
- 1 edited
-
src/SynTree/Initializer.cc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Initializer.cc
r7a69460 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 : Mon Apr 11 17:36:10 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: ";96 if ( ctor ) {97 os << " initially constructed with ";98 ctor->print( os, indent+2 );99 } // if100 101 if ( dtor ) {102 os << " destructed with ";103 dtor->print( os, indent+2 );104 }105 106 if ( init ) {107 os << " with fallback C-style initializer: ";108 init->print( os, indent+2 );109 }110 }111 112 std::ostream & operator<<( std::ostream & out, Initializer * init ) {113 init->print( out );114 return out;115 }116 117 81 // Local Variables: // 118 82 // tab-width: 4 //
Note:
See TracChangeset
for help on using the changeset viewer.