tip.analysis
Interface Question<Q>

Type Parameters:
Q - the type of the questions
All Known Implementing Classes:
QuestionAdapter

public interface Question<Q>

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

Author:
Johnni Winther, jw@brics.dk

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

Method Detail

caseStart

void caseStart(Start node,
               Q question)
Called by Start from Start.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAProgram

void caseAProgram(AProgram node,
                  Q question)
Called by AProgram from AProgram.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAFuncDecl

void caseAFuncDecl(AFuncDecl node,
                   Q question)
Called by AFuncDecl from AFuncDecl.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseALocalDecl

void caseALocalDecl(ALocalDecl node,
                    Q question)
Called by ALocalDecl from ALocalDecl.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseABody

void caseABody(ABody node,
               Q question)
Called by ABody from ABody.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseABlock

void caseABlock(ABlock node,
                Q question)
Called by ABlock from ABlock.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAPlusBinop

void caseAPlusBinop(APlusBinop node,
                    Q question)
Called by APlusBinop from APlusBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAMinusBinop

void caseAMinusBinop(AMinusBinop node,
                     Q question)
Called by AMinusBinop from AMinusBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseATimesBinop

void caseATimesBinop(ATimesBinop node,
                     Q question)
Called by ATimesBinop from ATimesBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseADivideBinop

void caseADivideBinop(ADivideBinop node,
                      Q question)
Called by ADivideBinop from ADivideBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAEqBinop

void caseAEqBinop(AEqBinop node,
                  Q question)
Called by AEqBinop from AEqBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAGtBinop

void caseAGtBinop(AGtBinop node,
                  Q question)
Called by AGtBinop from AGtBinop.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseABinopExp

void caseABinopExp(ABinopExp node,
                   Q question)
Called by ABinopExp from ABinopExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAPointerExp

void caseAPointerExp(APointerExp node,
                     Q question)
Called by APointerExp from APointerExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseADerefExp

void caseADerefExp(ADerefExp node,
                   Q question)
Called by ADerefExp from ADerefExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAIntConstExp

void caseAIntConstExp(AIntConstExp node,
                      Q question)
Called by AIntConstExp from AIntConstExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAFunctionCallExp

void caseAFunctionCallExp(AFunctionCallExp node,
                          Q question)
Called by AFunctionCallExp from AFunctionCallExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAFunctionPtrCallExp

void caseAFunctionPtrCallExp(AFunctionPtrCallExp node,
                             Q question)
Called by AFunctionPtrCallExp from AFunctionPtrCallExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAVarExp

void caseAVarExp(AVarExp node,
                 Q question)
Called by AVarExp from AVarExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAInputExp

void caseAInputExp(AInputExp node,
                   Q question)
Called by AInputExp from AInputExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAMallocExp

void caseAMallocExp(AMallocExp node,
                    Q question)
Called by AMallocExp from AMallocExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseANullExp

void caseANullExp(ANullExp node,
                  Q question)
Called by ANullExp from ANullExp.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAIfThenStm

void caseAIfThenStm(AIfThenStm node,
                    Q question)
Called by AIfThenStm from AIfThenStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAIfThenElseStm

void caseAIfThenElseStm(AIfThenElseStm node,
                        Q question)
Called by AIfThenElseStm from AIfThenElseStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAWhileStm

void caseAWhileStm(AWhileStm node,
                   Q question)
Called by AWhileStm from AWhileStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseADeclStm

void caseADeclStm(ADeclStm node,
                  Q question)
Called by ADeclStm from ADeclStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAReturnStm

void caseAReturnStm(AReturnStm node,
                    Q question)
Called by AReturnStm from AReturnStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAOutputStm

void caseAOutputStm(AOutputStm node,
                    Q question)
Called by AOutputStm from AOutputStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAAssignVarStm

void caseAAssignVarStm(AAssignVarStm node,
                       Q question)
Called by AAssignVarStm from AAssignVarStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseAAssignPtrStm

void caseAAssignPtrStm(AAssignPtrStm node,
                       Q question)
Called by AAssignPtrStm from AAssignPtrStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseABlockStm

void caseABlockStm(ABlockStm node,
                   Q question)
Called by ABlockStm from ABlockStm.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTWhiteSpace

void caseTWhiteSpace(TWhiteSpace node,
                     Q question)
Called by TWhiteSpace from TWhiteSpace.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTCommentSingle

void caseTCommentSingle(TCommentSingle node,
                        Q question)
Called by TCommentSingle from TCommentSingle.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTCommentBlock

void caseTCommentBlock(TCommentBlock node,
                       Q question)
Called by TCommentBlock from TCommentBlock.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTVar

void caseTVar(TVar node,
              Q question)
Called by TVar from TVar.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTInput

void caseTInput(TInput node,
                Q question)
Called by TInput from TInput.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTOutput

void caseTOutput(TOutput node,
                 Q question)
Called by TOutput from TOutput.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTIf

void caseTIf(TIf node,
             Q question)
Called by TIf from TIf.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTElse

void caseTElse(TElse node,
               Q question)
Called by TElse from TElse.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTWhile

void caseTWhile(TWhile node,
                Q question)
Called by TWhile from TWhile.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTReturn

void caseTReturn(TReturn node,
                 Q question)
Called by TReturn from TReturn.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTMalloc

void caseTMalloc(TMalloc node,
                 Q question)
Called by TMalloc from TMalloc.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTNull

void caseTNull(TNull node,
               Q question)
Called by TNull from TNull.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTLPar

void caseTLPar(TLPar node,
               Q question)
Called by TLPar from TLPar.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTRPar

void caseTRPar(TRPar node,
               Q question)
Called by TRPar from TRPar.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTLBrace

void caseTLBrace(TLBrace node,
                 Q question)
Called by TLBrace from TLBrace.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTRBrace

void caseTRBrace(TRBrace node,
                 Q question)
Called by TRBrace from TRBrace.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTSemicolon

void caseTSemicolon(TSemicolon node,
                    Q question)
Called by TSemicolon from TSemicolon.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTComma

void caseTComma(TComma node,
                Q question)
Called by TComma from TComma.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTAssign

void caseTAssign(TAssign node,
                 Q question)
Called by TAssign from TAssign.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTPlus

void caseTPlus(TPlus node,
               Q question)
Called by TPlus from TPlus.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTMinus

void caseTMinus(TMinus node,
                Q question)
Called by TMinus from TMinus.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTStar

void caseTStar(TStar node,
               Q question)
Called by TStar from TStar.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTDiv

void caseTDiv(TDiv node,
              Q question)
Called by TDiv from TDiv.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTAnd

void caseTAnd(TAnd node,
              Q question)
Called by TAnd from TAnd.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTGt

void caseTGt(TGt node,
             Q question)
Called by TGt from TGt.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTEq

void caseTEq(TEq node,
             Q question)
Called by TEq from TEq.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTIntegerConst

void caseTIntegerConst(TIntegerConst node,
                       Q question)
Called by TIntegerConst from TIntegerConst.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseTIdentifier

void caseTIdentifier(TIdentifier node,
                     Q question)
Called by TIdentifier from TIdentifier.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question

caseEOF

void caseEOF(EOF node,
             Q question)
Called by EOF from EOF.apply(Question,Object).

Parameters:
node - the calling node
question - the provided question