tip.analysis
Interface QuestionAnswer<Q,A>
- Type Parameters:
Q
- the type of the questionsA
- the type of the answers
- All Known Implementing Classes:
- ConstantPropagationAnalysis.Evaluator, IntervalAnalysis.Evaluator, QuestionAnswerAdapter, SignAnalysis.Evaluator
public interface QuestionAnswer<Q,A>
QuestionAnswer
defines an interface for the abstraction of answers
based on a question and a Node
. The interface is a visitor pattern.
- Author:
- Johnni Winther, jw@brics.dk
Method Summary |
A |
caseABinopExp(ABinopExp node,
Q question)
Called by ABinopExp from ABinopExp.apply(QuestionAnswer,Object) . |
A |
caseABlock(ABlock node,
Q question)
Called by ABlock from ABlock.apply(QuestionAnswer,Object) . |
A |
caseABlockStm(ABlockStm node,
Q question)
Called by ABlockStm from ABlockStm.apply(QuestionAnswer,Object) . |
A |
caseABody(ABody node,
Q question)
Called by ABody from ABody.apply(QuestionAnswer,Object) . |
A |
caseADeclStm(ADeclStm node,
Q question)
Called by ADeclStm from ADeclStm.apply(QuestionAnswer,Object) . |
A |
caseADerefExp(ADerefExp node,
Q question)
Called by ADerefExp from ADerefExp.apply(QuestionAnswer,Object) . |
A |
caseADivideBinop(ADivideBinop node,
Q question)
Called by ADivideBinop from ADivideBinop.apply(QuestionAnswer,Object) . |
A |
caseAEqBinop(AEqBinop node,
Q question)
Called by AEqBinop from AEqBinop.apply(QuestionAnswer,Object) . |
A |
caseAFuncDecl(AFuncDecl node,
Q question)
Called by AFuncDecl from AFuncDecl.apply(QuestionAnswer,Object) . |
A |
caseAFunctionCallExp(AFunctionCallExp node,
Q question)
Called by AFunctionCallExp from AFunctionCallExp.apply(QuestionAnswer,Object) . |
A |
caseAFunctionPtrCallExp(AFunctionPtrCallExp node,
Q question)
Called by AFunctionPtrCallExp from AFunctionPtrCallExp.apply(QuestionAnswer,Object) . |
A |
caseAGtBinop(AGtBinop node,
Q question)
Called by AGtBinop from AGtBinop.apply(QuestionAnswer,Object) . |
A |
caseAIfThenElseStm(AIfThenElseStm node,
Q question)
Called by AIfThenElseStm from AIfThenElseStm.apply(QuestionAnswer,Object) . |
A |
caseAIfThenStm(AIfThenStm node,
Q question)
Called by AIfThenStm from AIfThenStm.apply(QuestionAnswer,Object) . |
A |
caseAInputExp(AInputExp node,
Q question)
Called by AInputExp from AInputExp.apply(QuestionAnswer,Object) . |
A |
caseAIntConstExp(AIntConstExp node,
Q question)
Called by AIntConstExp from AIntConstExp.apply(QuestionAnswer,Object) . |
A |
caseALocalDecl(ALocalDecl node,
Q question)
Called by ALocalDecl from ALocalDecl.apply(QuestionAnswer,Object) . |
A |
caseAMallocExp(AMallocExp node,
Q question)
Called by AMallocExp from AMallocExp.apply(QuestionAnswer,Object) . |
A |
caseAMinusBinop(AMinusBinop node,
Q question)
Called by AMinusBinop from AMinusBinop.apply(QuestionAnswer,Object) . |
A |
caseANullExp(ANullExp node,
Q question)
Called by ANullExp from ANullExp.apply(QuestionAnswer,Object) . |
A |
caseAOutputStm(AOutputStm node,
Q question)
Called by AOutputStm from AOutputStm.apply(QuestionAnswer,Object) . |
A |
caseAPlusBinop(APlusBinop node,
Q question)
Called by APlusBinop from APlusBinop.apply(QuestionAnswer,Object) . |
A |
caseAPointerExp(APointerExp node,
Q question)
Called by APointerExp from APointerExp.apply(QuestionAnswer,Object) . |
A |
caseAProgram(AProgram node,
Q question)
Called by AProgram from AProgram.apply(QuestionAnswer,Object) . |
A |
caseAReturnStm(AReturnStm node,
Q question)
Called by AReturnStm from AReturnStm.apply(QuestionAnswer,Object) . |
A |
caseATimesBinop(ATimesBinop node,
Q question)
Called by ATimesBinop from ATimesBinop.apply(QuestionAnswer,Object) . |
A |
caseAVarExp(AVarExp node,
Q question)
Called by AVarExp from AVarExp.apply(QuestionAnswer,Object) . |
A |
caseAWhileStm(AWhileStm node,
Q question)
Called by AWhileStm from AWhileStm.apply(QuestionAnswer,Object) . |
A |
caseEOF(EOF node,
Q question)
Called by EOF from EOF.apply(QuestionAnswer,Object) . |
A |
caseStart(Start node,
Q question)
Called by Start from Start.apply(QuestionAnswer,Object) . |
A |
caseTAnd(TAnd node,
Q question)
Called by TAnd from TAnd.apply(QuestionAnswer,Object) . |
A |
caseTAssign(TAssign node,
Q question)
Called by TAssign from TAssign.apply(QuestionAnswer,Object) . |
A |
caseTComma(TComma node,
Q question)
Called by TComma from TComma.apply(QuestionAnswer,Object) . |
A |
caseTCommentBlock(TCommentBlock node,
Q question)
Called by TCommentBlock from TCommentBlock.apply(QuestionAnswer,Object) . |
A |
caseTCommentSingle(TCommentSingle node,
Q question)
Called by TCommentSingle from TCommentSingle.apply(QuestionAnswer,Object) . |
A |
caseTDiv(TDiv node,
Q question)
Called by TDiv from TDiv.apply(QuestionAnswer,Object) . |
A |
caseTElse(TElse node,
Q question)
Called by TElse from TElse.apply(QuestionAnswer,Object) . |
A |
caseTEq(TEq node,
Q question)
Called by TEq from TEq.apply(QuestionAnswer,Object) . |
A |
caseTGt(TGt node,
Q question)
Called by TGt from TGt.apply(QuestionAnswer,Object) . |
A |
caseTIdentifier(TIdentifier node,
Q question)
Called by TIdentifier from TIdentifier.apply(QuestionAnswer,Object) . |
A |
caseTIf(TIf node,
Q question)
Called by TIf from TIf.apply(QuestionAnswer,Object) . |
A |
caseTInput(TInput node,
Q question)
Called by TInput from TInput.apply(QuestionAnswer,Object) . |
A |
caseTIntegerConst(TIntegerConst node,
Q question)
Called by TIntegerConst from TIntegerConst.apply(QuestionAnswer,Object) . |
A |
caseTLBrace(TLBrace node,
Q question)
Called by TLBrace from TLBrace.apply(QuestionAnswer,Object) . |
A |
caseTLPar(TLPar node,
Q question)
Called by TLPar from TLPar.apply(QuestionAnswer,Object) . |
A |
caseTMalloc(TMalloc node,
Q question)
Called by TMalloc from TMalloc.apply(QuestionAnswer,Object) . |
A |
caseTMinus(TMinus node,
Q question)
Called by TMinus from TMinus.apply(QuestionAnswer,Object) . |
A |
caseTNull(TNull node,
Q question)
Called by TNull from TNull.apply(QuestionAnswer,Object) . |
A |
caseTOutput(TOutput node,
Q question)
Called by TOutput from TOutput.apply(QuestionAnswer,Object) . |
A |
caseTPlus(TPlus node,
Q question)
Called by TPlus from TPlus.apply(QuestionAnswer,Object) . |
A |
caseTRBrace(TRBrace node,
Q question)
Called by TRBrace from TRBrace.apply(QuestionAnswer,Object) . |
A |
caseTReturn(TReturn node,
Q question)
Called by TReturn from TReturn.apply(QuestionAnswer,Object) . |
A |
caseTRPar(TRPar node,
Q question)
Called by TRPar from TRPar.apply(QuestionAnswer,Object) . |
A |
caseTSemicolon(TSemicolon node,
Q question)
Called by TSemicolon from TSemicolon.apply(QuestionAnswer,Object) . |
A |
caseTStar(TStar node,
Q question)
Called by TStar from TStar.apply(QuestionAnswer,Object) . |
A |
caseTVar(TVar node,
Q question)
Called by TVar from TVar.apply(QuestionAnswer,Object) . |
A |
caseTWhile(TWhile node,
Q question)
Called by TWhile from TWhile.apply(QuestionAnswer,Object) . |
A |
caseTWhiteSpace(TWhiteSpace node,
Q question)
Called by TWhiteSpace from TWhiteSpace.apply(QuestionAnswer,Object) . |
A |
caseAAssignPtrStm(AAssignPtrStm node,
Q question)
Called by AAssignPtrStm from AAssignPtrStm.apply(QuestionAnswer,Object) . |
A |
caseAAssignVarStm(AAssignVarStm node,
Q question)
Called by AAssignVarStm from AAssignVarStm.apply(QuestionAnswer,Object) . |
caseStart
A caseStart(Start node,
Q question)
- Called by
Start
from Start.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAProgram
A caseAProgram(AProgram node,
Q question)
- Called by
AProgram
from AProgram.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAFuncDecl
A caseAFuncDecl(AFuncDecl node,
Q question)
- Called by
AFuncDecl
from AFuncDecl.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseALocalDecl
A caseALocalDecl(ALocalDecl node,
Q question)
- Called by
ALocalDecl
from ALocalDecl.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseABody
A caseABody(ABody node,
Q question)
- Called by
ABody
from ABody.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseABlock
A caseABlock(ABlock node,
Q question)
- Called by
ABlock
from ABlock.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAPlusBinop
A caseAPlusBinop(APlusBinop node,
Q question)
- Called by
APlusBinop
from APlusBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAMinusBinop
A caseAMinusBinop(AMinusBinop node,
Q question)
- Called by
AMinusBinop
from AMinusBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseATimesBinop
A caseATimesBinop(ATimesBinop node,
Q question)
- Called by
ATimesBinop
from ATimesBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseADivideBinop
A caseADivideBinop(ADivideBinop node,
Q question)
- Called by
ADivideBinop
from ADivideBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAEqBinop
A caseAEqBinop(AEqBinop node,
Q question)
- Called by
AEqBinop
from AEqBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAGtBinop
A caseAGtBinop(AGtBinop node,
Q question)
- Called by
AGtBinop
from AGtBinop.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseABinopExp
A caseABinopExp(ABinopExp node,
Q question)
- Called by
ABinopExp
from ABinopExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAPointerExp
A caseAPointerExp(APointerExp node,
Q question)
- Called by
APointerExp
from APointerExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseADerefExp
A caseADerefExp(ADerefExp node,
Q question)
- Called by
ADerefExp
from ADerefExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAIntConstExp
A caseAIntConstExp(AIntConstExp node,
Q question)
- Called by
AIntConstExp
from AIntConstExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAFunctionCallExp
A caseAFunctionCallExp(AFunctionCallExp node,
Q question)
- Called by
AFunctionCallExp
from AFunctionCallExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAFunctionPtrCallExp
A caseAFunctionPtrCallExp(AFunctionPtrCallExp node,
Q question)
- Called by
AFunctionPtrCallExp
from AFunctionPtrCallExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAVarExp
A caseAVarExp(AVarExp node,
Q question)
- Called by
AVarExp
from AVarExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAInputExp
A caseAInputExp(AInputExp node,
Q question)
- Called by
AInputExp
from AInputExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAMallocExp
A caseAMallocExp(AMallocExp node,
Q question)
- Called by
AMallocExp
from AMallocExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseANullExp
A caseANullExp(ANullExp node,
Q question)
- Called by
ANullExp
from ANullExp.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAIfThenStm
A caseAIfThenStm(AIfThenStm node,
Q question)
- Called by
AIfThenStm
from AIfThenStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAIfThenElseStm
A caseAIfThenElseStm(AIfThenElseStm node,
Q question)
- Called by
AIfThenElseStm
from AIfThenElseStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAWhileStm
A caseAWhileStm(AWhileStm node,
Q question)
- Called by
AWhileStm
from AWhileStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseADeclStm
A caseADeclStm(ADeclStm node,
Q question)
- Called by
ADeclStm
from ADeclStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAReturnStm
A caseAReturnStm(AReturnStm node,
Q question)
- Called by
AReturnStm
from AReturnStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAOutputStm
A caseAOutputStm(AOutputStm node,
Q question)
- Called by
AOutputStm
from AOutputStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAAssignVarStm
A caseAAssignVarStm(AAssignVarStm node,
Q question)
- Called by
AAssignVarStm
from AAssignVarStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseAAssignPtrStm
A caseAAssignPtrStm(AAssignPtrStm node,
Q question)
- Called by
AAssignPtrStm
from AAssignPtrStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseABlockStm
A caseABlockStm(ABlockStm node,
Q question)
- Called by
ABlockStm
from ABlockStm.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTWhiteSpace
A caseTWhiteSpace(TWhiteSpace node,
Q question)
- Called by
TWhiteSpace
from TWhiteSpace.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTCommentSingle
A caseTCommentSingle(TCommentSingle node,
Q question)
- Called by
TCommentSingle
from TCommentSingle.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTCommentBlock
A caseTCommentBlock(TCommentBlock node,
Q question)
- Called by
TCommentBlock
from TCommentBlock.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTVar
A caseTVar(TVar node,
Q question)
- Called by
TVar
from TVar.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTInput
A caseTInput(TInput node,
Q question)
- Called by
TInput
from TInput.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTOutput
A caseTOutput(TOutput node,
Q question)
- Called by
TOutput
from TOutput.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTIf
A caseTIf(TIf node,
Q question)
- Called by
TIf
from TIf.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTElse
A caseTElse(TElse node,
Q question)
- Called by
TElse
from TElse.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTWhile
A caseTWhile(TWhile node,
Q question)
- Called by
TWhile
from TWhile.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTReturn
A caseTReturn(TReturn node,
Q question)
- Called by
TReturn
from TReturn.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTMalloc
A caseTMalloc(TMalloc node,
Q question)
- Called by
TMalloc
from TMalloc.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTNull
A caseTNull(TNull node,
Q question)
- Called by
TNull
from TNull.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTLPar
A caseTLPar(TLPar node,
Q question)
- Called by
TLPar
from TLPar.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTRPar
A caseTRPar(TRPar node,
Q question)
- Called by
TRPar
from TRPar.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTLBrace
A caseTLBrace(TLBrace node,
Q question)
- Called by
TLBrace
from TLBrace.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTRBrace
A caseTRBrace(TRBrace node,
Q question)
- Called by
TRBrace
from TRBrace.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTSemicolon
A caseTSemicolon(TSemicolon node,
Q question)
- Called by
TSemicolon
from TSemicolon.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTComma
A caseTComma(TComma node,
Q question)
- Called by
TComma
from TComma.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTAssign
A caseTAssign(TAssign node,
Q question)
- Called by
TAssign
from TAssign.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTPlus
A caseTPlus(TPlus node,
Q question)
- Called by
TPlus
from TPlus.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTMinus
A caseTMinus(TMinus node,
Q question)
- Called by
TMinus
from TMinus.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTStar
A caseTStar(TStar node,
Q question)
- Called by
TStar
from TStar.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTDiv
A caseTDiv(TDiv node,
Q question)
- Called by
TDiv
from TDiv.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTAnd
A caseTAnd(TAnd node,
Q question)
- Called by
TAnd
from TAnd.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTGt
A caseTGt(TGt node,
Q question)
- Called by
TGt
from TGt.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTEq
A caseTEq(TEq node,
Q question)
- Called by
TEq
from TEq.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTIntegerConst
A caseTIntegerConst(TIntegerConst node,
Q question)
- Called by
TIntegerConst
from TIntegerConst.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseTIdentifier
A caseTIdentifier(TIdentifier node,
Q question)
- Called by
TIdentifier
from TIdentifier.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question
caseEOF
A caseEOF(EOF node,
Q question)
- Called by
EOF
from EOF.apply(QuestionAnswer,Object)
.
- Parameters:
node
- the calling node
- Returns:
- the answer to the question