#include #include #include "MLEMutator.h" #include "SynTree/Statement.h" namespace ControlStruct { MLEMutator::~MLEMutator() { delete targetTable; targetTable = 0; } CompoundStmt* MLEMutator::mutate(CompoundStmt *cmpndStmt) { bool labeledBlock = false; if (!((cmpndStmt->get_labels()).empty())) { labeledBlock = true; enclosingBlocks.push_back( Entry( cmpndStmt ) ); } std::list< Statement * > &kids = cmpndStmt->get_kids(); for( std::list< Statement * >::iterator k = kids.begin(); k != kids.end(); k++ ) { *k = (*k)->acceptMutator(*this); if (!get_breakLabel().empty()) { std::list< Statement * >::iterator next = k; next++; if( next == kids.end() ) { std::list