1 /******************************************************************************
2 * Top contributors (to current version):
3 * Morgan Deters, Christopher L. Conway, Mathias Preiner
5 * This file is part of the cvc5 project.
7 * Copyright (c) 2009-2021 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.
11 * ****************************************************************************
13 * Interactive shell for cvc5.
16 #ifndef CVC5__INTERACTIVE_SHELL_H
17 #define CVC5__INTERACTIVE_SHELL_H
22 #include "options/language.h"
23 #include "options/options.h"
24 #include "util/unsafe_interrupt_exception.h"
41 class InteractiveShell
43 const Options
& d_options
;
46 parser::Parser
* d_parser
;
50 std::string d_historyFilename
;
52 static const std::string INPUT_FILENAME
;
53 static const unsigned s_historyLimit
= 500;
56 InteractiveShell(api::Solver
* solver
, SymbolManager
* sm
);
59 * Close out the interactive session.
64 * Read a command from the interactive shell. This will read as
65 * many lines as necessary to parse a well-formed command.
67 Command
* readCommand();
70 * Return the internal parser being used.
72 parser::Parser
* getParser() { return d_parser
; }
74 };/* class InteractiveShell */
78 #endif /* CVC5__INTERACTIVE_SHELL_H */