translator.h

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*!
00003  * \file translator.h
00004  * \brief An exception to be thrown by the smtlib translator.
00005  * 
00006  * Author: Clark Barrett
00007  * 
00008  * Created: Sat Jun 25 18:03:09 2005
00009  *
00010  * <hr>
00011  * Copyright (C) 2003 by the Board of Trustees of Leland Stanford
00012  * Junior University and by New York University. 
00013  *
00014  * License to use, copy, modify, sell and/or distribute this software
00015  * and its documentation for any purpose is hereby granted without
00016  * royalty, subject to the terms and conditions defined in the \ref
00017  * LICENSE file provided with this distribution.  In particular:
00018  *
00019  * - The above copyright notice and this permission notice must appear
00020  * in all copies of the software and related documentation.
00021  *
00022  * - THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTIES,
00023  * EXPRESSED OR IMPLIED.  USE IT AT YOUR OWN RISK.
00024  * 
00025  * <hr>
00026  * 
00027  */
00028 /*****************************************************************************/
00029 
00030 #ifndef _CVC_lite__translator_h_
00031 #define _CVC_lite__translator_h_
00032 
00033 namespace CVCL {
00034 
00035 class Expr;
00036 class TheoryArith;
00037 template <class Data> class ExprMap;
00038 
00039 //Eventually all the translation code should go here
00040 class Translator {
00041   TheoryArith* d_theoryArith;
00042   bool d_convertToDiff;
00043   bool d_iteLiftArith;
00044 
00045   Expr preprocessRec(const Expr& e, ExprMap<Expr>& cache);
00046 
00047 public:
00048   // Constructors
00049   Translator::Translator(TheoryArith* theoryarith,
00050                          bool convertToDiff, bool iteLiftArith)
00051     : d_theoryArith(theoryarith), d_convertToDiff(convertToDiff),
00052       d_iteLiftArith(iteLiftArith) {}
00053 
00054   Expr preprocess(const Expr& e);
00055 
00056   // Destructor
00057   virtual ~Translator() { }
00058 
00059 }; // end of class Translator
00060 
00061 } // end of namespace CVCL 
00062 
00063 #endif

Generated on Thu Apr 13 16:57:35 2006 for CVC Lite by  doxygen 1.4.4