tip.cfg
Interface ICFGAnalysis

All Known Subinterfaces:
FixedPointAnalysis<VariableType>, WideningNarrowingAnalysis<VariableType>
All Known Implementing Classes:
AvailableExpressionsAnalysis, CFGAnalysisAdapter, ConstantPropagationAnalysis, DivisionAnalysis, FlowAnalysis, IntervalAnalysis, LivenessAnalysis, NullPointerAnalysis, ReachingDefinitionsAnalysis, ShapeAnalysis, SignAnalysis, VeryBusyExpressionsAnalysis

public interface ICFGAnalysis

ICFGAnalysis defines the interface for an analysis based on IProgramPoint. The interface is a visitor pattern.

Author:
Johnni Winther, jw@brics.dk

Method Summary
 boolean caseCAssignPtrStmPoint(AAssignPtrStm node, CAssignPtrStmPoint point)
          caseCAssignPtrStmPoint is called by a CAssignPtrStmPoint from CAssignPtrStmPoint.apply(ICFGAnalysis).
 boolean caseCAssignVarStmPoint(AAssignVarStm node, CAssignVarStmPoint point)
          caseCAssignVarStmPoint is called by a CAssignVarStmPoint from CAssignVarStmPoint.apply(ICFGAnalysis).
 boolean caseCBinopExpPoint(ABinopExp node, CBinopExpPoint point)
          caseCBinopExpPoint is called by a CBinopExpPoint from CBinopExpPoint.apply(ICFGAnalysis).
 boolean caseCBlockPoint(ABlock node, CBlockPoint point)
          caseCBlockPoint is called by a CBlockPoint from CBlockPoint.apply(ICFGAnalysis).
 boolean caseCDeclStmPoint(ADeclStm node, CDeclStmPoint point)
          caseCDeclStmPoint is called by a CDeclStmPoint from CDeclStmPoint.apply(ICFGAnalysis).
 boolean caseCDerefExpPoint(ADerefExp node, CDerefExpPoint point)
          caseCDerefExpPoint is called by a CDerefExpPoint from CDerefExpPoint.apply(ICFGAnalysis).
 boolean caseCFunctionCallExpPoint(AFunctionCallExp node, CFunctionCallExpPoint point)
          caseCFunctionCallExpPoint is called by a CFunctionCallExpPoint from CFunctionCallExpPoint.apply(ICFGAnalysis).
 boolean caseCFunctionPtrCallExpPoint(AFunctionPtrCallExp node, CFunctionPtrCallExpPoint point)
          caseCFunctionPtrCallExpPoint is called by a CFunctionPtrCallExpPoint from CFunctionPtrCallExpPoint.apply(ICFGAnalysis).
 boolean caseCIfThenElseStmPoint(AIfThenElseStm node, CIfThenElseStmPoint point)
          caseCIfThenElseStmPoint is called by a CIfThenElseStmPoint from CIfThenElseStmPoint.apply(ICFGAnalysis).
 boolean caseCIfThenStmPoint(AIfThenStm node, CIfThenStmPoint point)
          caseCIfThenStmPoint is called by a CIfThenStmPoint from CIfThenStmPoint.apply(ICFGAnalysis).
 boolean caseCInputExpPoint(AInputExp node, CInputExpPoint point)
          caseCInputExpPoint is called by a CInputExpPoint from CInputExpPoint.apply(ICFGAnalysis).
 boolean caseCIntConstExpPoint(AIntConstExp node, CIntConstExpPoint point)
          caseCIntConstExpPoint is called by a CIntConstExpPoint from CIntConstExpPoint.apply(ICFGAnalysis).
 boolean caseCMallocExpPoint(AMallocExp node, CMallocExpPoint point)
          caseCMallocExpPoint is called by a CMallocExpPoint from CMallocExpPoint.apply(ICFGAnalysis).
 boolean caseCNullExpPoint(ANullExp node, CNullExpPoint point)
          caseCNullExpPoint is called by a CNullExpPoint from CNullExpPoint.apply(ICFGAnalysis).
 boolean caseCOutputStmPoint(AOutputStm node, COutputStmPoint point)
          caseCOutputStmPoint is called by a COutputStmPoint from COutputStmPoint.apply(ICFGAnalysis).
 boolean caseCPointerExpPoint(APointerExp node, CPointerExpPoint point)
          caseCPointerExpPoint is called by a CPointerExpPoint from CPointerExpPoint.apply(ICFGAnalysis).
 boolean caseCReturnStmPoint(AReturnStm node, CReturnStmPoint point)
          caseCReturnStmPoint is called by a CReturnStmPoint from CReturnStmPoint.apply(ICFGAnalysis).
 boolean caseCVarExpPoint(AVarExp node, CVarExpPoint point)
          caseCVarExpPoint is called by a CVarExpPoint from CVarExpPoint.apply(ICFGAnalysis).
 boolean caseCWhileStmPoint(AWhileStm node, CWhileStmPoint point)
          caseCWhileStmPoint is called by a CWhileStmPoint from CWhileStmPoint.apply(ICFGAnalysis).
 boolean caseEntryPoint(Node node, EntryPoint point)
          caseEntryPoint is called by a EntryPoint from EntryPoint.apply(ICFGAnalysis).
 boolean caseExitPoint(Node node, ExitPoint point)
          caseExitPoint is called by a ExitPoint from ExitPoint.apply(ICFGAnalysis).
 

Method Detail

caseEntryPoint

boolean caseEntryPoint(Node node,
                       EntryPoint point)
caseEntryPoint is called by a EntryPoint from EntryPoint.apply(ICFGAnalysis).

Parameters:
node - the Node associated with point
point - the EntryPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseExitPoint

boolean caseExitPoint(Node node,
                      ExitPoint point)
caseExitPoint is called by a ExitPoint from ExitPoint.apply(ICFGAnalysis).

Parameters:
node - the Node associated with point
point - the ExitPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCReturnStmPoint

boolean caseCReturnStmPoint(AReturnStm node,
                            CReturnStmPoint point)
caseCReturnStmPoint is called by a CReturnStmPoint from CReturnStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AReturnStm associated with point
point - the CReturnStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCAssignPtrStmPoint

boolean caseCAssignPtrStmPoint(AAssignPtrStm node,
                               CAssignPtrStmPoint point)
caseCAssignPtrStmPoint is called by a CAssignPtrStmPoint from CAssignPtrStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AAssignPtrStm associated with point
point - the CAssignPtrStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCBlockPoint

boolean caseCBlockPoint(ABlock node,
                        CBlockPoint point)
caseCBlockPoint is called by a CBlockPoint from CBlockPoint.apply(ICFGAnalysis).

Parameters:
node - the ABlock associated with point
point - the CBlockPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCVarExpPoint

boolean caseCVarExpPoint(AVarExp node,
                         CVarExpPoint point)
caseCVarExpPoint is called by a CVarExpPoint from CVarExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AVarExp associated with point
point - the CVarExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCFunctionCallExpPoint

boolean caseCFunctionCallExpPoint(AFunctionCallExp node,
                                  CFunctionCallExpPoint point)
caseCFunctionCallExpPoint is called by a CFunctionCallExpPoint from CFunctionCallExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AFunctionCallExp associated with point
point - the CFunctionCallExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCDerefExpPoint

boolean caseCDerefExpPoint(ADerefExp node,
                           CDerefExpPoint point)
caseCDerefExpPoint is called by a CDerefExpPoint from CDerefExpPoint.apply(ICFGAnalysis).

Parameters:
node - the ADerefExp associated with point
point - the CDerefExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCDeclStmPoint

boolean caseCDeclStmPoint(ADeclStm node,
                          CDeclStmPoint point)
caseCDeclStmPoint is called by a CDeclStmPoint from CDeclStmPoint.apply(ICFGAnalysis).

Parameters:
node - the ADeclStm associated with point
point - the CDeclStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCInputExpPoint

boolean caseCInputExpPoint(AInputExp node,
                           CInputExpPoint point)
caseCInputExpPoint is called by a CInputExpPoint from CInputExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AInputExp associated with point
point - the CInputExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCMallocExpPoint

boolean caseCMallocExpPoint(AMallocExp node,
                            CMallocExpPoint point)
caseCMallocExpPoint is called by a CMallocExpPoint from CMallocExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AMallocExp associated with point
point - the CMallocExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCIfThenStmPoint

boolean caseCIfThenStmPoint(AIfThenStm node,
                            CIfThenStmPoint point)
caseCIfThenStmPoint is called by a CIfThenStmPoint from CIfThenStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AIfThenStm associated with point
point - the CIfThenStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCIntConstExpPoint

boolean caseCIntConstExpPoint(AIntConstExp node,
                              CIntConstExpPoint point)
caseCIntConstExpPoint is called by a CIntConstExpPoint from CIntConstExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AIntConstExp associated with point
point - the CIntConstExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCFunctionPtrCallExpPoint

boolean caseCFunctionPtrCallExpPoint(AFunctionPtrCallExp node,
                                     CFunctionPtrCallExpPoint point)
caseCFunctionPtrCallExpPoint is called by a CFunctionPtrCallExpPoint from CFunctionPtrCallExpPoint.apply(ICFGAnalysis).

Parameters:
node - the AFunctionPtrCallExp associated with point
point - the CFunctionPtrCallExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCWhileStmPoint

boolean caseCWhileStmPoint(AWhileStm node,
                           CWhileStmPoint point)
caseCWhileStmPoint is called by a CWhileStmPoint from CWhileStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AWhileStm associated with point
point - the CWhileStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCBinopExpPoint

boolean caseCBinopExpPoint(ABinopExp node,
                           CBinopExpPoint point)
caseCBinopExpPoint is called by a CBinopExpPoint from CBinopExpPoint.apply(ICFGAnalysis).

Parameters:
node - the ABinopExp associated with point
point - the CBinopExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCAssignVarStmPoint

boolean caseCAssignVarStmPoint(AAssignVarStm node,
                               CAssignVarStmPoint point)
caseCAssignVarStmPoint is called by a CAssignVarStmPoint from CAssignVarStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AAssignVarStm associated with point
point - the CAssignVarStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCIfThenElseStmPoint

boolean caseCIfThenElseStmPoint(AIfThenElseStm node,
                                CIfThenElseStmPoint point)
caseCIfThenElseStmPoint is called by a CIfThenElseStmPoint from CIfThenElseStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AIfThenElseStm associated with point
point - the CIfThenElseStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCOutputStmPoint

boolean caseCOutputStmPoint(AOutputStm node,
                            COutputStmPoint point)
caseCOutputStmPoint is called by a COutputStmPoint from COutputStmPoint.apply(ICFGAnalysis).

Parameters:
node - the AOutputStm associated with point
point - the COutputStmPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCPointerExpPoint

boolean caseCPointerExpPoint(APointerExp node,
                             CPointerExpPoint point)
caseCPointerExpPoint is called by a CPointerExpPoint from CPointerExpPoint.apply(ICFGAnalysis).

Parameters:
node - the APointerExp associated with point
point - the CPointerExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis

caseCNullExpPoint

boolean caseCNullExpPoint(ANullExp node,
                          CNullExpPoint point)
caseCNullExpPoint is called by a CNullExpPoint from CNullExpPoint.apply(ICFGAnalysis).

Parameters:
node - the ANullExp associated with point
point - the CNullExpPoint calling the method
Returns:
true if the call resulted in a change of the analysis