summaryrefslogtreecommitdiff
path: root/src/main/interactive_shell.h
blob: 6bd9db295d71d46679673ec834f8ad9df8021d33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*********************                                                        */
/*! \file interactive_shell.h
 ** \verbatim
 ** Original author: cconway
 ** Major contributors: 
 ** Minor contributors (to current version): 
 ** This file is part of the CVC4 prototype.
 ** Copyright (c) 2009, 2010  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 Interactive shell for CVC4
 **/

#ifndef __CVC4__INTERACTIVE_SHELL_H
#define __CVC4__INTERACTIVE_SHELL_H

#include <iostream>
#include <string>

#include "parser/parser_builder.h"

namespace CVC4 {

  class Command;

  using namespace parser;

class InteractiveShell {
  std::istream& d_in;
  std::ostream& d_out;
  ParserBuilder d_parserBuilder;

public:
  InteractiveShell(std::istream& in, 
                   std::ostream& out, 
                   ParserBuilder& parserBuilder) : 
    d_in(in),
    d_out(out),
    d_parserBuilder(parserBuilder) {
  }

  /** Read a command from the interactive shell. This will read as
      many lines as necessary to parse a well-formed command. */
  Command *readCommand();
};

} // CVC4 namespace

#endif // __CVC4__INTERACTIVE_SHELL_H
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback