1 /********************* */ 2 /*! \file ast_printer.h 3 ** \verbatim 4 ** Top contributors (to current version): 5 ** Tim King, Morgan Deters 6 ** This file is part of the CVC4 project. 7 ** Copyright (c) 2009-2019 by the authors listed in the file AUTHORS 8 ** in the top-level source directory) and their institutional affiliations. 9 ** All rights reserved. See the file COPYING in the top-level source 10 ** directory for licensing information.\endverbatim 11 ** 12 ** \brief The pretty-printer interface for the AST output language 13 ** 14 ** The pretty-printer interface for the AST output language. 15 **/ 16 17 #include "cvc4_private.h" 18 19 #ifndef __CVC4__PRINTER__AST_PRINTER_H 20 #define __CVC4__PRINTER__AST_PRINTER_H 21 22 #include <iostream> 23 24 #include "printer/printer.h" 25 26 namespace CVC4 { 27 namespace printer { 28 namespace ast { 29 30 class AstPrinter : public CVC4::Printer { 31 public: 32 using CVC4::Printer::toStream; 33 void toStream(std::ostream& out, 34 TNode n, 35 int toDepth, 36 bool types, 37 size_t dag) const override; 38 void toStream(std::ostream& out, 39 const Command* c, 40 int toDepth, 41 bool types, 42 size_t dag) const override; 43 void toStream(std::ostream& out, const CommandStatus* s) const override; 44 void toStream(std::ostream& out, const Model& m) const override; 45 46 private: 47 void toStream(std::ostream& out, TNode n, int toDepth, bool types) const; 48 void toStream(std::ostream& out, 49 const Model& m, 50 const Command* c) const override; 51 };/* class AstPrinter */ 52 53 }/* CVC4::printer::ast namespace */ 54 }/* CVC4::printer namespace */ 55 }/* CVC4 namespace */ 56 57 #endif /* __CVC4__PRINTER__AST_PRINTER_H */ 58