CVC3

expr_op.cpp

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*!
00003  * \file expr_op.cpp
00004  * 
00005  * Author: Sergey Berezin
00006  * 
00007  * Created: Fri Feb  7 15:29:42 2003
00008  *
00009  * <hr>
00010  *
00011  * License to use, copy, modify, sell and/or distribute this software
00012  * and its documentation for any purpose is hereby granted without
00013  * royalty, subject to the terms and conditions defined in the \ref
00014  * LICENSE file provided with this distribution.
00015  * 
00016  * <hr>
00017  * 
00018  */
00019 /*****************************************************************************/
00020 
00021 #include "expr_op.h"
00022 
00023 using namespace std;
00024 
00025 namespace CVC3 {
00026 
00027 Op::Op(ExprManager* em, const Op& op) : d_kind(op.d_kind), d_expr() {
00028   if (!op.d_expr.isNull()) d_expr = em->rebuild(op.d_expr);
00029 }
00030 
00031 Op& Op::operator=(const Op& op) {
00032   if(&op == this) return *this; // Self-assignment
00033   d_kind = op.d_kind;
00034   d_expr = op.d_expr;
00035   return *this;
00036 }
00037 
00038 string Op::toString() const {
00039   ostringstream ss;
00040   ss << *this;
00041   return ss.str();
00042 }
00043 
00044 } // end of namespace CVC3