/** * Creates a deep clone of this {@link ACasesStmIR} node while putting all * old node-new node relations in the map {@code oldToNewMap}. * @param oldToNewMap the map filled with the old node-new node relation * @return a deep clone of this {@link ACasesStmIR} node */ public ACasesStmIR clone(Map<INode,INode> oldToNewMap) { ACasesStmIR node = new ACasesStmIR( _sourceNode, _tag, _metaData, cloneNode(_exp, oldToNewMap), cloneList(_cases, oldToNewMap), cloneNode(_others, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Returns a deep clone of this {@link ACasesStmIR} node. * @return a deep clone of this {@link ACasesStmIR} node */ public ACasesStmIR clone() { return new ACasesStmIR( _sourceNode, _tag, _metaData, cloneNode(_exp), cloneList(_cases), cloneNode(_others) ); }
@Override public SStmIR caseACasesStm(ACasesStm node, IRInfo question) throws AnalysisException { PExp exp = node.getExp(); PStm others = node.getOthers(); LinkedList<ACaseAlternativeStm> cases = node.getCases(); SExpIR expCg = exp.apply(question.getExpVisitor(), question); SStmIR othersCg = others != null ? others.apply(question.getStmVisitor(), question) : null; ACasesStmIR casesStmCg = new ACasesStmIR(); casesStmCg.setExp(expCg); casesStmCg.setOthers(othersCg); question.getStmAssistant().handleAlternativesCasesStm(question, exp, cases, casesStmCg.getCases()); return casesStmCg; }
resultVar.setType(node.getType().clone()); ACasesStmIR casesStm = new ACasesStmIR(); casesStm.setExp(node.getExp().clone());