#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