/** * Creates a deep clone of this {@link ACaseAltStmStmIR} 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 ACaseAltStmStmIR} node */ public ACaseAltStmStmIR clone(Map<INode,INode> oldToNewMap) { ACaseAltStmStmIR node = new ACaseAltStmStmIR( _sourceNode, _tag, _metaData, cloneNode(_pattern, oldToNewMap), cloneNode(_result, oldToNewMap), cloneNode(_patternType, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Returns a deep clone of this {@link ACaseAltStmStmIR} node. * @return a deep clone of this {@link ACaseAltStmStmIR} node */ public ACaseAltStmStmIR clone() { return new ACaseAltStmStmIR( _sourceNode, _tag, _metaData, cloneNode(_pattern), cloneNode(_result), cloneNode(_patternType) ); }
@Override public SStmIR caseACaseAlternativeStm(ACaseAlternativeStm node, IRInfo question) throws AnalysisException { PPattern pattern = node.getPattern(); PStm result = node.getResult(); SPatternIR patternCg = pattern.apply(question.getPatternVisitor(), question); SStmIR resultCg = result.apply(question.getStmVisitor(), question); ACaseAltStmStmIR caseCg = new ACaseAltStmStmIR(); caseCg.setPattern(patternCg); caseCg.setResult(resultCg); return caseCg; }
ACaseAltStmStmIR altStm = new ACaseAltStmStmIR(); altStm.setPattern(altExp.getPattern().clone()); altStm.setResult(assignToVar(resultVar, altExp.getResult()));