/*
 * This file is part of the Cforall project
 *
 * $Id: CommaExpr.cc,v 1.7 2005/08/29 20:59:25 rcbilson Exp $
 *
 */

#include "Expression.h"
#include "Type.h"
#include "utility.h"


CommaExpr::CommaExpr( Expression *arg1, Expression *arg2, Expression *_aname )
    : Expression( _aname ), arg1( arg1 ), arg2( arg2 )
{
    cloneAll( arg2->get_results(), get_results() );
}

CommaExpr::CommaExpr( const CommaExpr &other )
    : Expression( other ), arg1( maybeClone( other.arg1 ) ), arg2( maybeClone( other.arg2 ) )
{
}

CommaExpr::~CommaExpr()
{
    delete arg1;
    delete arg2;
}

void 
CommaExpr::print( std::ostream &os, int indent ) const
{
    os << std::string( indent, ' ' ) << "Comma Expression:" << std::endl;
    arg1->print( os, indent+2 );
    os << std::endl;
    arg2->print( os, indent+2 );
    Expression::print( os, indent );
}


