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