Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.cc

    r6eb8948 rb6fe7e6  
    311311}
    312312
    313 UntypedMemberExpr::UntypedMemberExpr( Expression * _member, Expression *_aggregate, Expression *_aname ) :
     313UntypedMemberExpr::UntypedMemberExpr( std::string _member, Expression *_aggregate, Expression *_aname ) :
    314314                Expression( _aname ), member(_member), aggregate(_aggregate) {}
    315315
    316316UntypedMemberExpr::UntypedMemberExpr( const UntypedMemberExpr &other ) :
    317                 Expression( other ), member( maybeClone( other.member ) ), aggregate( maybeClone( other.aggregate ) ) {
     317                Expression( other ), member( other.member ), aggregate( maybeClone( other.aggregate ) ) {
    318318}
    319319
    320320UntypedMemberExpr::~UntypedMemberExpr() {
    321321        delete aggregate;
    322         delete member;
    323322}
    324323
    325324void UntypedMemberExpr::print( std::ostream &os, int indent ) const {
    326         os << "Untyped Member Expression, with field: " << std::endl;
    327         get_member()->print(os, indent+4);
    328         os << std::string( indent+2, ' ' );
     325        os << "Untyped Member Expression, with field: " << get_member();
    329326
    330327        Expression *agg = get_aggregate();
    331         os << "from aggregate: " << std::endl;
     328        os << ", from aggregate: ";
    332329        if (agg != 0) {
    333                 os << std::string( indent + 4, ' ' );
    334                 agg->print(os, indent + 4);
     330                os << std::string( indent + 2, ' ' );
     331                agg->print(os, indent + 2);
    335332        }
    336333        os << std::string( indent+2, ' ' );
     
    375372}
    376373
    377 UntypedExpr::UntypedExpr( Expression *_function, const std::list<Expression *> &_args, Expression *_aname ) :
    378                 Expression( _aname ), function(_function), args(_args) {}
     374
     375UntypedExpr::UntypedExpr( Expression *_function, Expression *_aname ) : Expression( _aname ), function( _function ) {}
    379376
    380377UntypedExpr::UntypedExpr( const UntypedExpr &other ) :
     
    382379        cloneAll( other.args, args );
    383380}
     381
     382UntypedExpr::UntypedExpr( Expression *_function, std::list<Expression *> &_args, Expression *_aname ) :
     383                Expression( _aname ), function(_function), args(_args) {}
    384384
    385385UntypedExpr::~UntypedExpr() {
     
    565565}
    566566
    567 StmtExpr::StmtExpr( CompoundStmt *statements ) : statements( statements ) {
    568         assert( statements );
    569         std::list< Statement * > & body = statements->get_kids();
    570         if ( ! body.empty() ) {
    571                 if ( ExprStmt * exprStmt = dynamic_cast< ExprStmt * >( body.back() ) ) {
    572                         cloneAll( exprStmt->get_expr()->get_results(), get_results() );
    573                 }
    574         }
    575 }
    576 StmtExpr::StmtExpr( const StmtExpr &other ) : statements( other.statements->clone() ) {}
    577 StmtExpr::~StmtExpr() {
    578         delete statements;
    579 }
    580 void StmtExpr::print( std::ostream &os, int indent ) const {
    581         os << std::string( indent, ' ' ) << "Statement Expression: " << std::endl;
    582         statements->print( os, indent+2 );
    583 }
    584 
    585567std::ostream & operator<<( std::ostream & out, const Expression * expr ) {
    586568        expr->print( out );
Note: See TracChangeset for help on using the changeset viewer.