/** * Called by the {@link ASetBindIR} node from {@link ASetBindIR#apply(IAnalysis)}. * @param node the calling {@link ASetBindIR} node */ public void caseASetBindIR(ASetBindIR node) throws AnalysisException { _visitedNodes.add(node); inASetBindIR(node); if(node.getPattern() != null && !_visitedNodes.contains(node.getPattern())) { node.getPattern().apply(this); } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this); } outASetBindIR(node); }
/** * Returns a deep clone of this {@link ASetBindIR} node. * @return a deep clone of this {@link ASetBindIR} node */ public ASetBindIR clone() { return new ASetBindIR( _sourceNode, _tag, _metaData, cloneNode(_pattern), cloneNode(_set) ); }
/** * Creates a new complete constructor {@code ASetBindIR} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param set_ the {@link SExpIR} node for the {@code set} child of this {@link ASetBindIR} node */ public ASetBindIR(SourceNode sourceNode_, Object tag_, List<? extends ClonableString> metaData_, SPatternIR pattern_, SExpIR set_) { super(sourceNode_,tag_,metaData_,pattern_); this.setSet(set_); }
@Override public SBindIR caseASetBind(ASetBind node, IRInfo question) throws AnalysisException { PPattern pattern = node.getPattern(); SPatternIR patternCg = pattern.apply(question.getPatternVisitor(), question); PExp set = node.getSet(); SExpIR setCg = set.apply(question.getExpVisitor(), question); ASetBindIR setBind = new ASetBindIR(); setBind.setPattern(patternCg); setBind.setSet(setCg); return setBind; }
node.getSetBind().apply(this);
multipleSetBind.setSet(setBind.getSet());
patterns.add(node.getSetBind().getPattern().clone()); } else
/** * Essentially this.toString().equals(o.toString()). **/ @Override public boolean equals(Object o) { if (o != null && o instanceof ASetBindIR) { return toString().equals(o.toString()); } return false; }
/** * Sets the {@code _setBind} child of this {@link ACompSeqExpIR} node. * @param value the new {@code _setBind} child of this {@link ACompSeqExpIR} node */ public void setSetBind(ASetBindIR value) { if (this._setBind != null) { this._setBind.parent(null); } if (value != null) { if (value.parent() != null) { value.parent().removeChild(value); } value.parent(this); } this._setBind = value; }
node.getSetBind().apply(this, question);
public String toString() { return (_first!=null?_first.toString():this.getClass().getSimpleName())+ (_setBind!=null?_setBind.toString():this.getClass().getSimpleName())+ (_seqBind!=null?_seqBind.toString():this.getClass().getSimpleName())+ (_setSeq!=null?_setSeq.toString():this.getClass().getSimpleName())+ (_predicate!=null?_predicate.toString():this.getClass().getSimpleName()); }
/** * Called by the {@link ASetBindIR} node from {@link ASetBindIR#apply(IIsaAnalysis)}. * @param node the calling {@link ASetBindIR} node */ public void caseASetBindIR(ASetBindIR node) throws AnalysisException { _visitedNodes.add(node); inASetBindIR(node); if(node.getPattern() != null && !_visitedNodes.contains(node.getPattern())) { node.getPattern().apply(this); } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this); } outASetBindIR(node); }
node.getSetBind().apply(this);
/** * Creates a deep clone of this {@link ASetBindIR} 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 ASetBindIR} node */ public ASetBindIR clone(Map<INode,INode> oldToNewMap) { ASetBindIR node = new ASetBindIR( _sourceNode, _tag, _metaData, cloneNode(_pattern, oldToNewMap), cloneNode(_set, oldToNewMap) ); oldToNewMap.put(this, node); return node; }
/** * Creates a new tree field only constructor {@code ASetBindIR TAG=set} node with the given nodes as children. * @deprecated This method should not be used, use AstFactory instead. * The basic child nodes are removed from their previous parents. * @param set_ the {@link SExpIR} node for the {@code set} child of this {@link ASetBindIR} node */ public ASetBindIR(SPatternIR pattern_, SExpIR set_) { super(null,null,null,pattern_); this.setSet(set_); }
/** * Called by the {@link ASetBindIR} node from {@link ASetBindIR#apply(IAnalysis)}. * @param node the calling {@link ASetBindIR} node */ public void caseASetBindIR(ASetBindIR node, Q question) throws AnalysisException { _visitedNodes.add(node); inASetBindIR(node, question); if(node.getPattern() != null && !_visitedNodes.contains(node.getPattern())) { node.getPattern().apply(this, question); } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { node.getSet().apply(this, question); } outASetBindIR(node, question); }
mergeReturns(retVal,node.getSetBind().apply(this));
/** * Called by the {@link ASetBindIR} node from {@link ASetBindIR#apply(IAnalysis)}. * @param node the calling {@link ASetBindIR} node */ public A caseASetBindIR(ASetBindIR node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inASetBindIR(node, question)); if(node.getPattern() != null && !_visitedNodes.contains(node.getPattern())) { mergeReturns(retVal,node.getPattern().apply(this, question)); } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { mergeReturns(retVal,node.getSet().apply(this, question)); } mergeReturns(retVal,outASetBindIR(node, question)); return retVal; }
mergeReturns(retVal,node.getSetBind().apply(this, question));
/** * Called by the {@link ASetBindIR} node from {@link ASetBindIR#apply(IAnalysis)}. * @param node the calling {@link ASetBindIR} node */ public A caseASetBindIR(ASetBindIR node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inASetBindIR(node)); if(node.getPattern() != null && !_visitedNodes.contains(node.getPattern())) { mergeReturns(retVal,node.getPattern().apply(this)); } if(node.getSet() != null && !_visitedNodes.contains(node.getSet())) { mergeReturns(retVal,node.getSet().apply(this)); } mergeReturns(retVal,outASetBindIR(node)); return retVal; }