tip.util
Class ExpressionEqualitor.ExpressionHashcode

java.lang.Object
  extended by tip.analysis.AnswerAdapter<java.lang.Integer>
      extended by tip.util.ExpressionEqualitor.ExpressionHashcode
All Implemented Interfaces:
Answer<java.lang.Integer>
Enclosing class:
ExpressionEqualitor

static class ExpressionEqualitor.ExpressionHashcode
extends AnswerAdapter<java.lang.Integer>

ExpressionHashcode is an instance of the Answer interface returning answers of the type Integer. The class computes the hashcode for expressions to use for the ExpressionEqualitor.

Author:
Johnni Winther, jw@brics.dk

Constructor Summary
ExpressionEqualitor.ExpressionHashcode()
           
 
Method Summary
 java.lang.Integer caseABinopExp(ABinopExp node)
          Returns a hashcode for the binary expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseABinopExp(ABinopExp, Node)
 java.lang.Integer caseADerefExp(ADerefExp node)
          Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAPointerExp(APointerExp, Node)
 java.lang.Integer caseAIntConstExp(AIntConstExp node)
          Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAIntConstExp(AIntConstExp, Node)
 java.lang.Integer caseANullExp(ANullExp node)
          Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseANullExp(ANullExp, Node)
 java.lang.Integer caseAPointerExp(APointerExp node)
          Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAPointerExp(APointerExp, Node)
 java.lang.Integer caseAVarExp(AVarExp node)
          Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAIntConstExp(AIntConstExp, Node)
 java.lang.Integer defaultNode(Node node)
          Returns the hashcode of node as the default hashcode for nodes to be consistent with ExpressionEqualitor.ExpressionEquality.defaultNode(Node, Node).
 
Methods inherited from class tip.analysis.AnswerAdapter
caseABlock, caseABlockStm, caseABody, caseADeclStm, caseADivideBinop, caseAEqBinop, caseAFuncDecl, caseAFunctionCallExp, caseAFunctionPtrCallExp, caseAGtBinop, caseAIfThenElseStm, caseAIfThenStm, caseAInputExp, caseALocalDecl, caseAMallocExp, caseAMinusBinop, caseAOutputStm, caseAPlusBinop, caseAProgram, caseAReturnStm, caseATimesBinop, caseAWhileStm, caseEOF, caseStart, caseTAnd, caseTAssign, caseTComma, caseTCommentBlock, caseTCommentSingle, caseTDiv, caseTElse, caseTEq, caseTGt, caseTIdentifier, caseTIf, caseTInput, caseTIntegerConst, caseTLBrace, caseTLPar, caseTMalloc, caseTMinus, caseTNull, caseTOutput, caseTPlus, caseTRBrace, caseTReturn, caseTRPar, caseTSemicolon, caseTStar, caseTVar, caseTWhile, caseTWhiteSpace, caseAAssignPtrStm, caseAAssignVarStm, defaultPBinop, defaultPBlock, defaultPBody, defaultPDecl, defaultPExp, defaultPProgram, defaultPStm, defaultToken
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExpressionEqualitor.ExpressionHashcode

ExpressionEqualitor.ExpressionHashcode()
Method Detail

defaultNode

public java.lang.Integer defaultNode(Node node)
Returns the hashcode of node as the default hashcode for nodes to be consistent with ExpressionEqualitor.ExpressionEquality.defaultNode(Node, Node).

Overrides:
defaultNode in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling Node
Returns:
the hashcode of node

caseABinopExp

public java.lang.Integer caseABinopExp(ABinopExp node)
Returns a hashcode for the binary expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseABinopExp(ABinopExp, Node)

Specified by:
caseABinopExp in interface Answer<java.lang.Integer>
Overrides:
caseABinopExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling ABinopExp node
Returns:
the hashcode of node

caseAPointerExp

public java.lang.Integer caseAPointerExp(APointerExp node)
Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAPointerExp(APointerExp, Node)

Specified by:
caseAPointerExp in interface Answer<java.lang.Integer>
Overrides:
caseAPointerExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling APointerExp node
Returns:
the hashcode of node

caseADerefExp

public java.lang.Integer caseADerefExp(ADerefExp node)
Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAPointerExp(APointerExp, Node)

Specified by:
caseADerefExp in interface Answer<java.lang.Integer>
Overrides:
caseADerefExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling ADerefExp node
Returns:
the hashcode of node

caseAIntConstExp

public java.lang.Integer caseAIntConstExp(AIntConstExp node)
Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAIntConstExp(AIntConstExp, Node)

Specified by:
caseAIntConstExp in interface Answer<java.lang.Integer>
Overrides:
caseAIntConstExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling AIntConstExp node
Returns:
the hashcode of node

caseAVarExp

public java.lang.Integer caseAVarExp(AVarExp node)
Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseAIntConstExp(AIntConstExp, Node)

Specified by:
caseAVarExp in interface Answer<java.lang.Integer>
Overrides:
caseAVarExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling AVarExp node
Returns:
the hashcode of node

caseANullExp

public java.lang.Integer caseANullExp(ANullExp node)
Returns a hashcode for the pointer expression node consistent with the result of ExpressionEqualitor.ExpressionEquality.caseANullExp(ANullExp, Node)

Specified by:
caseANullExp in interface Answer<java.lang.Integer>
Overrides:
caseANullExp in class AnswerAdapter<java.lang.Integer>
Parameters:
node - the calling ANullExp node
Returns:
the hashcode of node