Changes in src/SynTree/Expression.cc [af5c204a:62423350]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/Expression.cc
raf5c204a r62423350 21 21 #include <iterator> 22 22 23 #include "Declaration.h" 24 #include "Expression.h" 25 #include "Initializer.h" 26 #include "Statement.h" 23 27 #include "Type.h" 24 #include "Initializer.h"25 #include "Expression.h"26 #include "Declaration.h"27 #include "Statement.h"28 28 #include "TypeSubstitution.h" 29 #include "VarExprReplacer.h" 30 29 31 #include "Common/utility.h" 32 #include "Common/PassVisitor.h" 33 30 34 #include "InitTweak/InitTweak.h" 31 35 … … 92 96 93 97 Declaration *decl = get_var(); 94 // if ( decl != 0) decl->print(os, indent + 2);95 98 if ( decl != 0) decl->printShort(os, indent + 2); 96 99 os << std::endl; … … 657 660 } 658 661 662 InitAlternative::InitAlternative( Type * type, Designation * designation ) : type( type ), designation( designation ) {} 663 InitAlternative::InitAlternative( const InitAlternative & other ) : type( maybeClone( other.type ) ), designation( maybeClone( other.designation ) ) {} 664 InitAlternative::~InitAlternative() { 665 delete type; 666 delete designation; 667 } 668 669 UntypedInitExpr::UntypedInitExpr( Expression * expr, const std::list<InitAlternative> & initAlts ) : expr( expr ), initAlts( initAlts ) {} 670 UntypedInitExpr::UntypedInitExpr( const UntypedInitExpr & other ) : Expression( other ), expr( maybeClone( other.expr ) ), initAlts( other.initAlts ) {} 671 UntypedInitExpr::~UntypedInitExpr() { 672 delete expr; 673 } 674 675 void UntypedInitExpr::print( std::ostream & os, int indent ) const { 676 os << "Untyped Init Expression" << std::endl << std::string( indent+2, ' ' ); 677 expr->print( os, indent+2 ); 678 if ( ! initAlts.empty() ) { 679 for ( const InitAlternative & alt : initAlts ) { 680 os << std::string( indent+2, ' ' ) << "InitAlternative: "; 681 alt.type->print( os, indent+2 ); 682 alt.designation->print( os, indent+2 ); 683 } 684 } 685 } 686 687 InitExpr::InitExpr( Expression * expr, Designation * designation ) : expr( expr ), designation( designation ) { 688 set_result( expr->get_result()->clone() ); 689 } 690 InitExpr::InitExpr( const InitExpr & other ) : Expression( other ), expr( maybeClone( other.expr ) ), designation( maybeClone( other.designation) ) {} 691 InitExpr::~InitExpr() { 692 delete expr; 693 delete designation; 694 } 695 696 void InitExpr::print( std::ostream & os, int indent ) const { 697 os << "Init Expression" << std::endl << std::string( indent+2, ' ' ); 698 expr->print( os, indent+2 ); 699 os << std::string( indent+2, ' ' ) << "with designation: "; 700 designation->print( os, indent+2 ); 701 } 702 703 659 704 std::ostream & operator<<( std::ostream & out, const Expression * expr ) { 660 705 if ( expr ) {
Note:
See TracChangeset
for help on using the changeset viewer.