Statement* Block::dup0() const { Block *ret = new Block(location); for (Statement *stemnt=head; stemnt; stemnt=stemnt->next) ret->add(stemnt->dup()); LabelVector::const_iterator j; for (j=labels.begin(); j != labels.end(); j++) ret->addLabel((*j)->dup()); return ret; }
void RvArrAssume::block(Statement *node) { if (!node) { // null(); //ofer } else if (node->isBlock()) node->accept(this); else { Block *blk = new Block(node->location); blk->add(node->dup()); LabelVector::const_iterator j; for (j=node->labels.begin(); j != node->labels.end(); j++) blk->addLabel((*j)->dup()); blk->accept(this); } }