pretty_printer.h

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*!
00003  * \file pretty_printer.h
00004  * 
00005  * Author: Sergey Berezin
00006  * 
00007  * Created: Mon Jun 16 12:31:08 2003
00008  *
00009  * <hr>
00010  * Copyright (C) 2003 by the Board of Trustees of Leland Stanford
00011  * Junior University and by New York University. 
00012  *
00013  * License to use, copy, modify, sell and/or distribute this software
00014  * and its documentation for any purpose is hereby granted without
00015  * royalty, subject to the terms and conditions defined in the \ref
00016  * LICENSE file provided with this distribution.  In particular:
00017  *
00018  * - The above copyright notice and this permission notice must appear
00019  * in all copies of the software and related documentation.
00020  *
00021  * - THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTIES,
00022  * EXPRESSED OR IMPLIED.  USE IT AT YOUR OWN RISK.
00023  * 
00024  * <hr>
00025  * 
00026  * Defines an abstract class PrettyPrinter which connects the
00027  * theory-specific pretty-printers with ExprManager.
00028  * 
00029  */
00030 /*****************************************************************************/
00031 
00032 #ifndef _CVC_lite__pretty_printer_h_
00033 #define _CVC_lite__pretty_printer_h_
00034 
00035 namespace CVCL {
00036 
00037   class Expr;
00038   class ExprStream;
00039   //! Abstract API to a pretty-printer for Expr
00040   /*! \ingroup PrettyPrinting */
00041   class PrettyPrinter {
00042   public:
00043     //! Default constructor
00044     PrettyPrinter() { }
00045     //! Virtual destructor
00046     virtual ~PrettyPrinter() { }
00047     //! The pretty-printer which subclasses must implement
00048     virtual ExprStream& print(ExprStream& os, const Expr& e) = 0;
00049   };
00050 
00051 }
00052 
00053 #endif

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