/* * This file is part of the Cforall project * * $Id: Alternative.h,v 1.9 2005/08/29 20:14:15 rcbilson Exp $ * */ #ifndef RESOLVEXPR_ALTERNATIVE_H #define RESOLVEXPR_ALTERNATIVE_H #include #include "SynTree/SynTree.h" #include "Cost.h" #include "TypeEnvironment.h" namespace ResolvExpr { struct Alternative; typedef std::list< Alternative > AltList; struct Alternative { Alternative(); Alternative( Expression *expr, const TypeEnvironment &env, const Cost& cost ); Alternative( Expression *expr, const TypeEnvironment &env, const Cost& cost, const Cost &cvtCost ); Alternative( const Alternative &other ); Alternative &operator=( const Alternative &other ); ~Alternative(); void initialize( const Alternative &src, Alternative &dest ); void print( std::ostream &os, int indent = 0 ) const; Cost cost; Cost cvtCost; Expression *expr; TypeEnvironment env; }; } // namespace ResolvExpr #endif /* #ifndef RESOLVEXPR_ALTERNATIVE_H */