/** * Creates a deep clone of this {@link ASetMultipleBindIR} 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 ASetMultipleBindIR} node */ public ASetMultipleBindIR clone(Map<INode,INode> oldToNewMap) { ASetMultipleBindIR node = new ASetMultipleBindIR( _sourceNode, _tag, _metaData, cloneList(_patterns, oldToNewMap), cloneNode(_set, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Returns a deep clone of this {@link ASetMultipleBindIR} node. * @return a deep clone of this {@link ASetMultipleBindIR} node */ public ASetMultipleBindIR clone() { return new ASetMultipleBindIR( _sourceNode, _tag, _metaData, cloneList(_patterns), cloneNode(_set) ); }
@Override public SMultipleBindIR caseASetMultipleBind(ASetMultipleBind node, IRInfo question) throws AnalysisException { List<PPattern> patterns = node.getPlist(); PExp set = node.getSet(); LinkedList<SPatternIR> patternsCg = new LinkedList<SPatternIR>(); for (PPattern pattern : patterns) { SPatternIR patternTempCg = pattern.apply(question.getPatternVisitor(), question); if (patternTempCg != null) { patternsCg.add(patternTempCg); } else { return null; } } SExpIR setCg = set.apply(question.getExpVisitor(), question); ASetMultipleBindIR multipleSetBind = new ASetMultipleBindIR(); multipleSetBind.setPatterns(patternsCg); multipleSetBind.setSet(setCg); return multipleSetBind; }
ASetMultipleBindIR multipleSetBind = new ASetMultipleBindIR();