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