diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-09-27 22:04:38 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-09-27 22:04:38 +0000 |
commit | ad0a71e2782bc291ba9f808d24df2e1d8ca1b41e (patch) | |
tree | 744a9ae0f10f6dd8837d7e0dcd8bd2b25d34e481 /src/printer/smt1 | |
parent | 51daaee8eb1ee55ee3323c5395a95fd121fe87a8 (diff) |
* Rename SMT parts (printer, parser) to SMT1
* Change --lang smt to mean SMT-LIBv2
* --lang smt1 now means SMT-LIBv1
* SMT-LIBv2 parser now gives helpful error if input looks like v1
* SMT-LIBv1 parser now gives helpful error if input looks like v2
* CVC presentation language parser now gives helpful error if input
looks like either SMT-LIB v1 or v2
* Other associated changes
(this commit was certified error- and warning-free by the test-and-commit script.)
Diffstat (limited to 'src/printer/smt1')
-rw-r--r-- | src/printer/smt1/smt1_printer.cpp | 61 | ||||
-rw-r--r-- | src/printer/smt1/smt1_printer.h | 47 |
2 files changed, 108 insertions, 0 deletions
diff --git a/src/printer/smt1/smt1_printer.cpp b/src/printer/smt1/smt1_printer.cpp new file mode 100644 index 000000000..553692dc5 --- /dev/null +++ b/src/printer/smt1/smt1_printer.cpp @@ -0,0 +1,61 @@ +/********************* */ +/*! \file smt1_printer.cpp + ** \verbatim + ** Original author: mdeters + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009, 2010, 2011 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief The pretty-printer interface for the SMT output language + ** + ** The pretty-printer interface for the SMT output language. + **/ + +#include "printer/smt1/smt1_printer.h" +#include "expr/expr.h" // for ExprSetDepth etc.. +#include "util/language.h" // for LANG_AST +#include "expr/node_manager.h" // for VarNameAttr +#include "expr/command.h" + +#include <iostream> +#include <vector> +#include <string> +#include <typeinfo> + +using namespace std; + +namespace CVC4 { +namespace printer { +namespace smt1 { + +void Smt1Printer::toStream(std::ostream& out, TNode n, + int toDepth, bool types, size_t dag) const throw() { + n.toStream(out, toDepth, types, dag, language::output::LANG_SMTLIB_V2); +}/* Smt1Printer::toStream() */ + +void Smt1Printer::toStream(std::ostream& out, const Command* c, + int toDepth, bool types, size_t dag) const throw() { + c->toStream(out, toDepth, types, dag, language::output::LANG_SMTLIB_V2); +}/* Smt1Printer::toStream() */ + +void Smt1Printer::toStream(std::ostream& out, const CommandStatus* s) const throw() { + s->toStream(out, language::output::LANG_SMTLIB_V2); +}/* Smt1Printer::toStream() */ + +void Smt1Printer::toStream(std::ostream& out, const SExpr& sexpr) const throw() { + Printer::getPrinter(language::output::LANG_SMTLIB_V2)->toStream(out, sexpr); +}/* Smt1Printer::toStream() */ + +void Smt1Printer::toStream(std::ostream& out, Model* m, const Command* c) const throw() { + Printer::getPrinter(language::output::LANG_SMTLIB_V2)->toStream(out, m, c); +} + +}/* CVC4::printer::smt1 namespace */ +}/* CVC4::printer namespace */ +}/* CVC4 namespace */ + diff --git a/src/printer/smt1/smt1_printer.h b/src/printer/smt1/smt1_printer.h new file mode 100644 index 000000000..d1b36208c --- /dev/null +++ b/src/printer/smt1/smt1_printer.h @@ -0,0 +1,47 @@ +/********************* */ +/*! \file smt1_printer.h + ** \verbatim + ** Original author: mdeters + ** Major contributors: none + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009, 2010, 2011 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief The pretty-printer interface for the SMT output language + ** + ** The pretty-printer interface for the SMT output language. + **/ + +#include "cvc4_private.h" + +#ifndef __CVC4__PRINTER__SMT1_PRINTER_H +#define __CVC4__PRINTER__SMT1_PRINTER_H + +#include <iostream> + +#include "printer/printer.h" + +namespace CVC4 { +namespace printer { +namespace smt1 { + +class Smt1Printer : public CVC4::Printer { +public: + void toStream(std::ostream& out, TNode n, int toDepth, bool types, size_t dag) const throw(); + void toStream(std::ostream& out, const Command* c, int toDepth, bool types, size_t dag) const throw(); + void toStream(std::ostream& out, const CommandStatus* s) const throw(); + void toStream(std::ostream& out, const SExpr& sexpr) const throw(); + //for models + void toStream(std::ostream& out, Model* m, const Command* c) const throw(); +};/* class Smt1Printer */ + +}/* CVC4::printer::smt1 namespace */ +}/* CVC4::printer namespace */ +}/* CVC4 namespace */ + +#endif /* __CVC4__PRINTER__SMT1_PRINTER_H */ + |