1 /********************* */
2 /*! \file interactive_shell.h
4 ** Top contributors (to current version):
5 ** Morgan Deters, Christopher L. Conway, Aina Niemetz
6 ** This file is part of the CVC4 project.
7 ** Copyright (c) 2009-2020 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
12 ** \brief Interactive shell for CVC4
15 #ifndef CVC4__INTERACTIVE_SHELL_H
16 #define CVC4__INTERACTIVE_SHELL_H
21 #include "options/language.h"
22 #include "options/options.h"
23 #include "util/unsafe_interrupt_exception.h"
37 }/* CVC4::parser namespace */
39 class CVC4_PUBLIC InteractiveShell
41 const Options
& d_options
;
44 parser::Parser
* d_parser
;
48 std::string d_historyFilename
;
50 static const std::string INPUT_FILENAME
;
51 static const unsigned s_historyLimit
= 500;
54 InteractiveShell(api::Solver
* solver
, parser::SymbolManager
* sm
);
57 * Close out the interactive session.
62 * Read a command from the interactive shell. This will read as
63 * many lines as necessary to parse a well-formed command.
65 Command
* readCommand();
68 * Return the internal parser being used.
70 parser::Parser
* getParser() { return d_parser
; }
72 };/* class InteractiveShell */
76 #endif /* CVC4__INTERACTIVE_SHELL_H */