Argument* Argument::clone(MapVariables& mapVar){ // return a copy of _args where each variable is replaced by its correspondant in mapVar Argument* args = new Argument(); for (Argument::iterator it = begin(); it != end(); it++) args->push_back((*it)->getClone(mapVar)); return args; }
Argument* Argument::applySubstitution(){ Argument* args = new Argument(); try { for (Argument::iterator it = begin(); it != end(); it++) args->push_back((*it)->applySubstitution()); return args; } catch (OutOfRange&){ delete args; throw; } }