tip.analysis
Interface Answer<A>

Type Parameters:
A - the type of the answers
All Known Implementing Classes:
AnswerAdapter, NodeText, Precedence

public interface Answer<A>

Answer defines an interface for the abstraction of answers based on a Node. The interface is a visitor pattern.

Author:
Johnni Winther, jw@brics.dk

Method Summary
 A caseABinopExp(ABinopExp node)
          Called by ABinopExp from ABinopExp.apply(Answer).
 A caseABlock(ABlock node)
          Called by ABlock from ABlock.apply(Answer).
 A caseABlockStm(ABlockStm node)
          Called by ABlockStm from ABlockStm.apply(Answer).
 A caseABody(ABody node)
          Called by ABody from ABody.apply(Answer).
 A caseADeclStm(ADeclStm node)
          Called by ADeclStm from ADeclStm.apply(Answer).
 A caseADerefExp(ADerefExp node)
          Called by ADerefExp from ADerefExp.apply(Answer).
 A caseADivideBinop(ADivideBinop node)
          Called by ADivideBinop from ADivideBinop.apply(Answer).
 A caseAEqBinop(AEqBinop node)
          Called by AEqBinop from AEqBinop.apply(Answer).
 A caseAFuncDecl(AFuncDecl node)
          Called by AFuncDecl from AFuncDecl.apply(Answer).
 A caseAFunctionCallExp(AFunctionCallExp node)
          Called by AFunctionCallExp from AFunctionCallExp.apply(Answer).
 A caseAFunctionPtrCallExp(AFunctionPtrCallExp node)
          Called by AFunctionPtrCallExp from AFunctionPtrCallExp.apply(Answer).
 A caseAGtBinop(AGtBinop node)
          Called by AGtBinop from AGtBinop.apply(Answer).
 A caseAIfThenElseStm(AIfThenElseStm node)
          Called by AIfThenElseStm from AIfThenElseStm.apply(Answer).
 A caseAIfThenStm(AIfThenStm node)
          Called by AIfThenStm from AIfThenStm.apply(Answer).
 A caseAInputExp(AInputExp node)
          Called by AInputExp from AInputExp.apply(Answer).
 A caseAIntConstExp(AIntConstExp node)
          Called by AIntConstExp from AIntConstExp.apply(Answer).
 A caseALocalDecl(ALocalDecl node)
          Called by ALocalDecl from ALocalDecl.apply(Answer).
 A caseAMallocExp(AMallocExp node)
          Called by AMallocExp from AMallocExp.apply(Answer).
 A caseAMinusBinop(AMinusBinop node)
          Called by AMinusBinop from AMinusBinop.apply(Answer).
 A caseANullExp(ANullExp node)
          Called by ANullExp from ANullExp.apply(Answer).
 A caseAOutputStm(AOutputStm node)
          Called by AOutputStm from AOutputStm.apply(Answer).
 A caseAPlusBinop(APlusBinop node)
          Called by APlusBinop from APlusBinop.apply(Answer).
 A caseAPointerExp(APointerExp node)
          Called by APointerExp from APointerExp.apply(Answer).
 A caseAProgram(AProgram node)
          Called by AProgram from AProgram.apply(Answer).
 A caseAReturnStm(AReturnStm node)
          Called by AReturnStm from AReturnStm.apply(Answer).
 A caseATimesBinop(ATimesBinop node)
          Called by ATimesBinop from ATimesBinop.apply(Answer).
 A caseAVarExp(AVarExp node)
          Called by AVarExp from AVarExp.apply(Answer).
 A caseAWhileStm(AWhileStm node)
          Called by AWhileStm from AWhileStm.apply(Answer).
 A caseEOF(EOF node)
          Called by EOF from EOF.apply(Answer).
 A caseStart(Start node)
          Called by Start from Start.apply(Answer).
 A caseTAnd(TAnd node)
          Called by TAnd from TAnd.apply(Answer).
 A caseTAssign(TAssign node)
          Called by TAssign from TAssign.apply(Answer).
 A caseTComma(TComma node)
          Called by TComma from TComma.apply(Answer).
 A caseTCommentBlock(TCommentBlock node)
          Called by TCommentBlock from TCommentBlock.apply(Answer).
 A caseTCommentSingle(TCommentSingle node)
          Called by TCommentSingle from TCommentSingle.apply(Answer).
 A caseTDiv(TDiv node)
          Called by TDiv from TDiv.apply(Answer).
 A caseTElse(TElse node)
          Called by TElse from TElse.apply(Answer).
 A caseTEq(TEq node)
          Called by TEq from TEq.apply(Answer).
 A caseTGt(TGt node)
          Called by TGt from TGt.apply(Answer).
 A caseTIdentifier(TIdentifier node)
          Called by TIdentifier from TIdentifier.apply(Answer).
 A caseTIf(TIf node)
          Called by TIf from TIf.apply(Answer).
 A caseTInput(TInput node)
          Called by TInput from TInput.apply(Answer).
 A caseTIntegerConst(TIntegerConst node)
          Called by TIntegerConst from TIntegerConst.apply(Answer).
 A caseTLBrace(TLBrace node)
          Called by TLBrace from TLBrace.apply(Answer).
 A caseTLPar(TLPar node)
          Called by TLPar from TLPar.apply(Answer).
 A caseTMalloc(TMalloc node)
          Called by TMalloc from TMalloc.apply(Answer).
 A caseTMinus(TMinus node)
          Called by TMinus from TMinus.apply(Answer).
 A caseTNull(TNull node)
          Called by TNull from TNull.apply(Answer).
 A caseTOutput(TOutput node)
          Called by TOutput from TOutput.apply(Answer).
 A caseTPlus(TPlus node)
          Called by TPlus from TPlus.apply(Answer).
 A caseTRBrace(TRBrace node)
          Called by TRBrace from TRBrace.apply(Answer).
 A caseTReturn(TReturn node)
          Called by TReturn from TReturn.apply(Answer).
 A caseTRPar(TRPar node)
          Called by TRPar from TRPar.apply(Answer).
 A caseTSemicolon(TSemicolon node)
          Called by TSemicolon from TSemicolon.apply(Answer).
 A caseTStar(TStar node)
          Called by TStar from TStar.apply(Answer).
 A caseTVar(TVar node)
          Called by TVar from TVar.apply(Answer).
 A caseTWhile(TWhile node)
          Called by TWhile from TWhile.apply(Answer).
 A caseTWhiteSpace(TWhiteSpace node)
          Called by TWhiteSpace from TWhiteSpace.apply(Answer).
 A caseAAssignPtrStm(AAssignPtrStm node)
          Called by AAssignPtrStm from AAssignPtrStm.apply(Answer).
 A caseAAssignVarStm(AAssignVarStm node)
          Called by AAssignVarStm from AAssignVarStm.apply(Answer).
 

Method Detail

caseStart

A caseStart(Start node)
Called by Start from Start.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAProgram

A caseAProgram(AProgram node)
Called by AProgram from AProgram.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAFuncDecl

A caseAFuncDecl(AFuncDecl node)
Called by AFuncDecl from AFuncDecl.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseALocalDecl

A caseALocalDecl(ALocalDecl node)
Called by ALocalDecl from ALocalDecl.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseABody

A caseABody(ABody node)
Called by ABody from ABody.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseABlock

A caseABlock(ABlock node)
Called by ABlock from ABlock.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAPlusBinop

A caseAPlusBinop(APlusBinop node)
Called by APlusBinop from APlusBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAMinusBinop

A caseAMinusBinop(AMinusBinop node)
Called by AMinusBinop from AMinusBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseATimesBinop

A caseATimesBinop(ATimesBinop node)
Called by ATimesBinop from ATimesBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseADivideBinop

A caseADivideBinop(ADivideBinop node)
Called by ADivideBinop from ADivideBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAEqBinop

A caseAEqBinop(AEqBinop node)
Called by AEqBinop from AEqBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAGtBinop

A caseAGtBinop(AGtBinop node)
Called by AGtBinop from AGtBinop.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseABinopExp

A caseABinopExp(ABinopExp node)
Called by ABinopExp from ABinopExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAPointerExp

A caseAPointerExp(APointerExp node)
Called by APointerExp from APointerExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseADerefExp

A caseADerefExp(ADerefExp node)
Called by ADerefExp from ADerefExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAIntConstExp

A caseAIntConstExp(AIntConstExp node)
Called by AIntConstExp from AIntConstExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAFunctionCallExp

A caseAFunctionCallExp(AFunctionCallExp node)
Called by AFunctionCallExp from AFunctionCallExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAFunctionPtrCallExp

A caseAFunctionPtrCallExp(AFunctionPtrCallExp node)
Called by AFunctionPtrCallExp from AFunctionPtrCallExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAVarExp

A caseAVarExp(AVarExp node)
Called by AVarExp from AVarExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAInputExp

A caseAInputExp(AInputExp node)
Called by AInputExp from AInputExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAMallocExp

A caseAMallocExp(AMallocExp node)
Called by AMallocExp from AMallocExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseANullExp

A caseANullExp(ANullExp node)
Called by ANullExp from ANullExp.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAIfThenStm

A caseAIfThenStm(AIfThenStm node)
Called by AIfThenStm from AIfThenStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAIfThenElseStm

A caseAIfThenElseStm(AIfThenElseStm node)
Called by AIfThenElseStm from AIfThenElseStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAWhileStm

A caseAWhileStm(AWhileStm node)
Called by AWhileStm from AWhileStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseADeclStm

A caseADeclStm(ADeclStm node)
Called by ADeclStm from ADeclStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAReturnStm

A caseAReturnStm(AReturnStm node)
Called by AReturnStm from AReturnStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAOutputStm

A caseAOutputStm(AOutputStm node)
Called by AOutputStm from AOutputStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAAssignVarStm

A caseAAssignVarStm(AAssignVarStm node)
Called by AAssignVarStm from AAssignVarStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseAAssignPtrStm

A caseAAssignPtrStm(AAssignPtrStm node)
Called by AAssignPtrStm from AAssignPtrStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseABlockStm

A caseABlockStm(ABlockStm node)
Called by ABlockStm from ABlockStm.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTWhiteSpace

A caseTWhiteSpace(TWhiteSpace node)
Called by TWhiteSpace from TWhiteSpace.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTCommentSingle

A caseTCommentSingle(TCommentSingle node)
Called by TCommentSingle from TCommentSingle.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTCommentBlock

A caseTCommentBlock(TCommentBlock node)
Called by TCommentBlock from TCommentBlock.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTVar

A caseTVar(TVar node)
Called by TVar from TVar.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTInput

A caseTInput(TInput node)
Called by TInput from TInput.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTOutput

A caseTOutput(TOutput node)
Called by TOutput from TOutput.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTIf

A caseTIf(TIf node)
Called by TIf from TIf.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTElse

A caseTElse(TElse node)
Called by TElse from TElse.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTWhile

A caseTWhile(TWhile node)
Called by TWhile from TWhile.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTReturn

A caseTReturn(TReturn node)
Called by TReturn from TReturn.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTMalloc

A caseTMalloc(TMalloc node)
Called by TMalloc from TMalloc.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTNull

A caseTNull(TNull node)
Called by TNull from TNull.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTLPar

A caseTLPar(TLPar node)
Called by TLPar from TLPar.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTRPar

A caseTRPar(TRPar node)
Called by TRPar from TRPar.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTLBrace

A caseTLBrace(TLBrace node)
Called by TLBrace from TLBrace.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTRBrace

A caseTRBrace(TRBrace node)
Called by TRBrace from TRBrace.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTSemicolon

A caseTSemicolon(TSemicolon node)
Called by TSemicolon from TSemicolon.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTComma

A caseTComma(TComma node)
Called by TComma from TComma.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTAssign

A caseTAssign(TAssign node)
Called by TAssign from TAssign.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTPlus

A caseTPlus(TPlus node)
Called by TPlus from TPlus.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTMinus

A caseTMinus(TMinus node)
Called by TMinus from TMinus.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTStar

A caseTStar(TStar node)
Called by TStar from TStar.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTDiv

A caseTDiv(TDiv node)
Called by TDiv from TDiv.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTAnd

A caseTAnd(TAnd node)
Called by TAnd from TAnd.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTGt

A caseTGt(TGt node)
Called by TGt from TGt.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTEq

A caseTEq(TEq node)
Called by TEq from TEq.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTIntegerConst

A caseTIntegerConst(TIntegerConst node)
Called by TIntegerConst from TIntegerConst.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseTIdentifier

A caseTIdentifier(TIdentifier node)
Called by TIdentifier from TIdentifier.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call

caseEOF

A caseEOF(EOF node)
Called by EOF from EOF.apply(Answer).

Parameters:
node - the calling node
Returns:
the answer to the call