Merge branch '1.4.x'
[cvc5.git] / src / expr / expr_stream.h
1 /********************* */
2 /*! \file expr_stream.h
3 ** \verbatim
4 ** Original author: Morgan Deters
5 ** Major contributors: none
6 ** Minor contributors (to current version): none
7 ** This file is part of the CVC4 project.
8 ** Copyright (c) 2009-2014 New York University and The University of Iowa
9 ** See the file COPYING in the top-level source directory for licensing
10 ** information.\endverbatim
11 **
12 ** \brief A stream interface for expressions
13 **
14 ** A stream interface for expressions.
15 **/
16
17 #include "cvc4_public.h"
18
19 #ifndef __CVC4__EXPR_STREAM_H
20 #define __CVC4__EXPR_STREAM_H
21
22 #include "expr/expr.h"
23
24 namespace CVC4 {
25
26 /**
27 * A pure-virtual stream interface for expressions. Can be used to
28 * communicate streams of expressions between different parts of CVC4.
29 */
30 class CVC4_PUBLIC ExprStream {
31 public:
32 /** Virtual destructor; this implementation does nothing. */
33 virtual ~ExprStream() {}
34
35 /**
36 * Get the next expression in the stream (advancing the stream
37 * pointer as a side effect.)
38 */
39 virtual Expr nextExpr() = 0;
40 };/* class ExprStream */
41
42 }/* CVC4 namespace */
43
44 #endif /* __CVC4__EXPR_STREAM_H */
45