summaryrefslogtreecommitdiff
path: root/src/printer/printer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/printer/printer.cpp')
-rw-r--r--src/printer/printer.cpp39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/printer/printer.cpp b/src/printer/printer.cpp
index 2ccac5e9f..e8ebadeb8 100644
--- a/src/printer/printer.cpp
+++ b/src/printer/printer.cpp
@@ -2,9 +2,9 @@
/*! \file printer.cpp
** \verbatim
** Top contributors (to current version):
- ** Morgan Deters, Tim King, Andrew Reynolds
+ ** Morgan Deters, Tim King, Aina Niemetz
** This file is part of the CVC4 project.
- ** Copyright (c) 2009-2017 by the authors listed in the file AUTHORS
+ ** Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
** in the top-level source directory) and their institutional affiliations.
** All rights reserved. See the file COPYING in the top-level source
** directory for licensing information.\endverbatim
@@ -29,47 +29,52 @@ using namespace std;
namespace CVC4 {
-Printer* Printer::d_printers[language::output::LANG_MAX];
+unique_ptr<Printer> Printer::d_printers[language::output::LANG_MAX];
-Printer* Printer::makePrinter(OutputLanguage lang)
+unique_ptr<Printer> Printer::makePrinter(OutputLanguage lang)
{
using namespace CVC4::language::output;
switch(lang) {
case LANG_SMTLIB_V1: // TODO the printer
- return new printer::smt1::Smt1Printer();
+ return unique_ptr<Printer>(new printer::smt1::Smt1Printer());
case LANG_SMTLIB_V2_0:
- return new printer::smt2::Smt2Printer(printer::smt2::smt2_0_variant);
+ return unique_ptr<Printer>(
+ new printer::smt2::Smt2Printer(printer::smt2::smt2_0_variant));
case LANG_SMTLIB_V2_5:
- return new printer::smt2::Smt2Printer();
-
+ return unique_ptr<Printer>(new printer::smt2::Smt2Printer());
+
case LANG_SMTLIB_V2_6:
- return new printer::smt2::Smt2Printer(printer::smt2::smt2_6_variant);
+ return unique_ptr<Printer>(
+ new printer::smt2::Smt2Printer(printer::smt2::smt2_6_variant));
case LANG_TPTP:
- return new printer::tptp::TptpPrinter();
+ return unique_ptr<Printer>(new printer::tptp::TptpPrinter());
case LANG_CVC4:
- return new printer::cvc::CvcPrinter();
+ return unique_ptr<Printer>(new printer::cvc::CvcPrinter());
case LANG_Z3STR:
- return new printer::smt2::Smt2Printer(printer::smt2::z3str_variant);
+ return unique_ptr<Printer>(
+ new printer::smt2::Smt2Printer(printer::smt2::z3str_variant));
case LANG_SYGUS:
- return new printer::smt2::Smt2Printer(printer::smt2::sygus_variant);
+ return unique_ptr<Printer>(
+ new printer::smt2::Smt2Printer(printer::smt2::sygus_variant));
case LANG_AST:
- return new printer::ast::AstPrinter();
+ return unique_ptr<Printer>(new printer::ast::AstPrinter());
case LANG_CVC3:
- return new printer::cvc::CvcPrinter(/* cvc3-mode = */ true);
+ return unique_ptr<Printer>(
+ new printer::cvc::CvcPrinter(/* cvc3-mode = */ true));
default:
Unhandled(lang);
}
-}/* Printer::makePrinter() */
+}
void Printer::toStreamSygus(std::ostream& out, TNode n) const
{
@@ -121,7 +126,7 @@ Printer* Printer::getPrinter(OutputLanguage lang)
if(d_printers[lang] == NULL) {
d_printers[lang] = makePrinter(lang);
}
- return d_printers[lang];
+ return d_printers[lang].get();
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback