1 /*********************                                                        */
2 /*! \file expr_stream.h
3  ** \verbatim
4  ** Top contributors (to current version):
5  **   Morgan Deters
6  ** This file is part of the CVC4 project.
7  ** Copyright (c) 2009-2019 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
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. */
~ExprStream()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 
46