/** * Called by the {@link AFieldStateDesignator} node from {@link AFieldStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AFieldStateDesignator} node */ public void caseAFieldStateDesignator(AFieldStateDesignator node) throws AnalysisException { _visitedNodes.add(node); inAFieldStateDesignator(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getObject() != null && !_visitedNodes.contains(node.getObject())) { node.getObject().apply(this); } if(node.getField() != null ) { node.getField().apply(this); } if(node.getObjectfield() != null ) { node.getObjectfield().apply(this); } outAFieldStateDesignator(node); }
/** * Called by the {@link AFieldStateDesignator} node from {@link AFieldStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AFieldStateDesignator} node */ public void caseAFieldStateDesignator(AFieldStateDesignator node, Q question) throws AnalysisException { _visitedNodes.add(node); inAFieldStateDesignator(node, question); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this, question); } if(node.getObject() != null && !_visitedNodes.contains(node.getObject())) { node.getObject().apply(this, question); } if(node.getField() != null ) { node.getField().apply(this, question); } if(node.getObjectfield() != null ) { node.getObjectfield().apply(this, question); } outAFieldStateDesignator(node, question); }
/** * Called by the {@link AFieldStateDesignator} node from {@link AFieldStateDesignator#apply(IPOFAnalysis)}. * @param node the calling {@link AFieldStateDesignator} node */ public void caseAFieldStateDesignator(AFieldStateDesignator node) throws AnalysisException { _visitedNodes.add(node); inAFieldStateDesignator(node); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { node.getType().apply(this); } if(node.getObject() != null && !_visitedNodes.contains(node.getObject())) { node.getObject().apply(this); } if(node.getField() != null ) { node.getField().apply(this); } if(node.getObjectfield() != null ) { node.getObjectfield().apply(this); } outAFieldStateDesignator(node); }
/** * Called by the {@link AFieldStateDesignator} node from {@link AFieldStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AFieldStateDesignator} node */ public A caseAFieldStateDesignator(AFieldStateDesignator node) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node); mergeReturns(retVal,inAFieldStateDesignator(node)); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { mergeReturns(retVal,node.getType().apply(this)); } if(node.getObject() != null && !_visitedNodes.contains(node.getObject())) { mergeReturns(retVal,node.getObject().apply(this)); } if(node.getField() != null ) { mergeReturns(retVal,node.getField().apply(this)); } if(node.getObjectfield() != null ) { mergeReturns(retVal,node.getObjectfield().apply(this)); } mergeReturns(retVal,outAFieldStateDesignator(node)); return retVal; }
/** * Called by the {@link AFieldStateDesignator} node from {@link AFieldStateDesignator#apply(IAnalysis)}. * @param node the calling {@link AFieldStateDesignator} node */ public A caseAFieldStateDesignator(AFieldStateDesignator node, Q question) throws AnalysisException { _visitedNodes.add(node); A retVal = createNewReturnValue(node, question); mergeReturns(retVal,inAFieldStateDesignator(node, question)); if(node.getType() != null && !_visitedNodes.contains(node.getType())) { mergeReturns(retVal,node.getType().apply(this, question)); } if(node.getObject() != null && !_visitedNodes.contains(node.getObject())) { mergeReturns(retVal,node.getObject().apply(this, question)); } if(node.getField() != null ) { mergeReturns(retVal,node.getField().apply(this, question)); } if(node.getObjectfield() != null ) { mergeReturns(retVal,node.getObjectfield().apply(this, question)); } mergeReturns(retVal,outAFieldStateDesignator(node, question)); return retVal; }
@Override public SStateDesignatorIR caseAFieldStateDesignator( AFieldStateDesignator node, IRInfo question) throws AnalysisException { PType type = node.getType(); PStateDesignator stateDesignator = node.getObject(); String fieldName = node.getField().getName(); STypeIR typeCg = type.apply(question.getTypeVisitor(), question); SStateDesignatorIR stateDesignatorCg = stateDesignator.apply(question.getStateDesignatorVisitor(), question); AFieldStateDesignatorIR field = new AFieldStateDesignatorIR(); field.setType(typeCg); field.setObject(stateDesignatorCg); field.setField(fieldName); return field; }
@Override public PExp caseAFieldStateDesignator(AFieldStateDesignator node) throws AnalysisException { // pack this with the output of the visitor recursive calls. PExp value = node.getObject().apply(this); AFieldExp fieldExp = new AFieldExp(); fieldExp.setObject(value.clone()); fieldExp.setField(node.getField().clone()); // Not 100% sure these 2 match fieldExp.setMemberName(node.getObjectfield().clone()); fieldExp.setType(node.getType().clone()); return fieldExp; }