CVC3

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  *
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  * Defines an abstract class PrettyPrinter which connects the
00019  * theory-specific pretty-printers with ExprManager.
00020  * 
00021  */
00022 /*****************************************************************************/
00023 
00024 #ifndef _cvc3__pretty_printer_h_
00025 #define _cvc3__pretty_printer_h_
00026 
00027 namespace CVC3 {
00028 
00029   class Expr;
00030   class ExprStream;
00031   //! Abstract API to a pretty-printer for Expr
00032   /*! \ingroup PrettyPrinting */
00033   class PrettyPrinter {
00034   public:
00035     //! Default constructor
00036     PrettyPrinter() { }
00037     //! Virtual destructor
00038     virtual ~PrettyPrinter() { }
00039     //! The pretty-printer which subclasses must implement
00040     virtual ExprStream& print(ExprStream& os, const Expr& e) = 0;
00041   };
00042 
00043 }
00044 
00045 #endif