/* * This file is part of the Cforall project * * $Id: AlternativePrinter.cc,v 1.5 2005/08/29 20:14:15 rcbilson Exp $ * */ #include "AlternativePrinter.h" #include "AlternativeFinder.h" #include "Alternative.h" #include "SynTree/Statement.h" #include "SynTree/Type.h" #include "SynTree/Expression.h" #include "utility.h" namespace ResolvExpr { AlternativePrinter::AlternativePrinter( std::ostream &os ) : SymTab::Indexer( false ), os( os ) { } void AlternativePrinter::visit(ExprStmt *exprStmt) { TypeEnvironment env; AlternativeFinder finder( *this, env ); finder.findWithAdjustment( exprStmt->get_expr() ); int count = 1; os << "There are " << finder.get_alternatives().size() << " alternatives" << std::endl; for( AltList::const_iterator i = finder.get_alternatives().begin(); i != finder.get_alternatives().end(); ++i ) { os << "Alternative " << count++ << " ==============" << std::endl; printAll( i->expr->get_results(), os ); // i->print( os ); os << std::endl; } } } // namespace ResolvExpr