tip.cfg
Interface CFGQuestionAnswer<Q,A>

Type Parameters:
Q - the type of the questions
A - the type of the answers
All Known Implementing Classes:
CFGQuestionAnswerAdapter, Interprocedural

public interface CFGQuestionAnswer<Q,A>

CFGQuestionAnswer defines an interface for the abstraction of answers to questions based on a ICFG. The interface is a visitor pattern.

Author:
Johnni Winther, jw@brics.dk

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

Method Detail

caseEntryPoint

A caseEntryPoint(Node node,
                 EntryPoint point,
                 Q question)
caseEntryPoint is called by a EntryPoint from EntryPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the Node associated with point
point - the EntryPoint calling the method
question - the question
Returns:
the answer to the call

caseExitPoint

A caseExitPoint(Node node,
                ExitPoint point,
                Q question)
caseExitPoint is called by a ExitPoint from ExitPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the Node associated with point
point - the ExitPoint calling the method
question - the question
Returns:
the answer to the call

caseCReturnStmPoint

A caseCReturnStmPoint(AReturnStm node,
                      CReturnStmPoint point,
                      Q question)
caseCReturnStmPoint is called by a CReturnStmPoint from CReturnStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AReturnStm associated with point
point - the CReturnStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCAssignPtrStmPoint

A caseCAssignPtrStmPoint(AAssignPtrStm node,
                         CAssignPtrStmPoint point,
                         Q question)
caseCAssignPtrStmPoint is called by a CAssignPtrStmPoint from CAssignPtrStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AAssignPtrStm associated with point
point - the CAssignPtrStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCBlockPoint

A caseCBlockPoint(ABlock node,
                  CBlockPoint point,
                  Q question)
caseCBlockPoint is called by a CBlockPoint from CBlockPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the ABlock associated with point
point - the CBlockPoint calling the method
question - the question
Returns:
the answer to the call

caseCVarExpPoint

A caseCVarExpPoint(AVarExp node,
                   CVarExpPoint point,
                   Q question)
caseCVarExpPoint is called by a CVarExpPoint from CVarExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AVarExp associated with point
point - the CVarExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCFunctionCallExpPoint

A caseCFunctionCallExpPoint(AFunctionCallExp node,
                            CFunctionCallExpPoint point,
                            Q question)
caseCFunctionCallExpPoint is called by a CFunctionCallExpPoint from CFunctionCallExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AFunctionCallExp associated with point
point - the CFunctionCallExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCDerefExpPoint

A caseCDerefExpPoint(ADerefExp node,
                     CDerefExpPoint point,
                     Q question)
caseCDerefExpPoint is called by a CDerefExpPoint from CDerefExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the ADerefExp associated with point
point - the CDerefExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCDeclStmPoint

A caseCDeclStmPoint(ADeclStm node,
                    CDeclStmPoint point,
                    Q question)
caseCDeclStmPoint is called by a CDeclStmPoint from CDeclStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the ADeclStm associated with point
point - the CDeclStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCInputExpPoint

A caseCInputExpPoint(AInputExp node,
                     CInputExpPoint point,
                     Q question)
caseCInputExpPoint is called by a CInputExpPoint from CInputExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AInputExp associated with point
point - the CInputExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCMallocExpPoint

A caseCMallocExpPoint(AMallocExp node,
                      CMallocExpPoint point,
                      Q question)
caseCMallocExpPoint is called by a CMallocExpPoint from CMallocExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AMallocExp associated with point
point - the CMallocExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCIfThenStmPoint

A caseCIfThenStmPoint(AIfThenStm node,
                      CIfThenStmPoint point,
                      Q question)
caseCIfThenStmPoint is called by a CIfThenStmPoint from CIfThenStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AIfThenStm associated with point
point - the CIfThenStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCIntConstExpPoint

A caseCIntConstExpPoint(AIntConstExp node,
                        CIntConstExpPoint point,
                        Q question)
caseCIntConstExpPoint is called by a CIntConstExpPoint from CIntConstExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AIntConstExp associated with point
point - the CIntConstExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCFunctionPtrCallExpPoint

A caseCFunctionPtrCallExpPoint(AFunctionPtrCallExp node,
                               CFunctionPtrCallExpPoint point,
                               Q question)
caseCFunctionPtrCallExpPoint is called by a CFunctionPtrCallExpPoint from CFunctionPtrCallExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AFunctionPtrCallExp associated with point
point - the CFunctionPtrCallExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCWhileStmPoint

A caseCWhileStmPoint(AWhileStm node,
                     CWhileStmPoint point,
                     Q question)
caseCWhileStmPoint is called by a CWhileStmPoint from CWhileStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AWhileStm associated with point
point - the CWhileStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCBinopExpPoint

A caseCBinopExpPoint(ABinopExp node,
                     CBinopExpPoint point,
                     Q question)
caseCBinopExpPoint is called by a CBinopExpPoint from CBinopExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the ABinopExp associated with point
point - the CBinopExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCAssignVarStmPoint

A caseCAssignVarStmPoint(AAssignVarStm node,
                         CAssignVarStmPoint point,
                         Q question)
caseCAssignVarStmPoint is called by a CAssignVarStmPoint from CAssignVarStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AAssignVarStm associated with point
point - the CAssignVarStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCIfThenElseStmPoint

A caseCIfThenElseStmPoint(AIfThenElseStm node,
                          CIfThenElseStmPoint point,
                          Q question)
caseCIfThenElseStmPoint is called by a CIfThenElseStmPoint from CIfThenElseStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AIfThenElseStm associated with point
point - the CIfThenElseStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCOutputStmPoint

A caseCOutputStmPoint(AOutputStm node,
                      COutputStmPoint point,
                      Q question)
caseCOutputStmPoint is called by a COutputStmPoint from COutputStmPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the AOutputStm associated with point
point - the COutputStmPoint calling the method
question - the question
Returns:
the answer to the call

caseCPointerExpPoint

A caseCPointerExpPoint(APointerExp node,
                       CPointerExpPoint point,
                       Q question)
caseCPointerExpPoint is called by a CPointerExpPoint from CPointerExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the APointerExp associated with point
point - the CPointerExpPoint calling the method
question - the question
Returns:
the answer to the call

caseCNullExpPoint

A caseCNullExpPoint(ANullExp node,
                    CNullExpPoint point,
                    Q question)
caseCNullExpPoint is called by a CNullExpPoint from CNullExpPoint.apply(CFGQuestionAnswer,Object).

Parameters:
node - the ANullExp associated with point
point - the CNullExpPoint calling the method
question - the question
Returns:
the answer to the call