koala.dynamicjava.interpreter
Class TypeChecker

java.lang.Object
  extended bykoala.dynamicjava.tree.visitor.VisitorObject
      extended bykoala.dynamicjava.interpreter.TypeChecker
All Implemented Interfaces:
Visitor

public class TypeChecker
extends VisitorObject

This tree visitor checks the typing rules and loads the classes, fields and methods


Constructor Summary
TypeChecker(Context ctx)
          Creates a new name visitor
 
Method Summary
 java.lang.Object visit(AddAssignExpression node)
          Visits an AddAssignExpression
 java.lang.Object visit(AddExpression node)
          Visits an AddExpression
 java.lang.Object visit(AndExpression node)
          Visits an AndExpression
 java.lang.Object visit(ArrayAccess node)
          Visits an ArrayAccess
 java.lang.Object visit(ArrayAllocation node)
          Visits an ArrayAllocation
 java.lang.Object visit(ArrayInitializer node)
          Visits a ArrayInitializer
 java.lang.Object visit(ArrayType node)
          Visits a ArrayType
 java.lang.Object visit(BitAndAssignExpression node)
          Visits a BitAndAssignExpression
 java.lang.Object visit(BitAndExpression node)
          Visits a BitAndExpression
 java.lang.Object visit(BitOrAssignExpression node)
          Visits a BitOrAssignExpression
 java.lang.Object visit(BitOrExpression node)
          Visits a BitOrExpression
 java.lang.Object visit(BlockStatement node)
          Visits a BlockStatement
 java.lang.Object visit(CastExpression node)
          Visits a CastExpression
 java.lang.Object visit(CatchStatement node)
          Visits a CatchStatement
 java.lang.Object visit(ClassAllocation node)
          Visits a ClassAllocation
 java.lang.Object visit(ComplementExpression node)
          Visits a ComplementExpression
 java.lang.Object visit(ConditionalExpression node)
          Visits a ConditionalExpression
 java.lang.Object visit(DivideAssignExpression node)
          Visits an DivideAssignExpression
 java.lang.Object visit(DivideExpression node)
          Visits a DivideExpression
 java.lang.Object visit(DoStatement node)
          Visits a DoStatement
 java.lang.Object visit(EqualExpression node)
          Visits an EqualExpression
 java.lang.Object visit(ExclusiveOrAssignExpression node)
          Visits a ExclusiveOrAssignExpression
 java.lang.Object visit(ExclusiveOrExpression node)
          Visits a ExclusiveOrExpression
 java.lang.Object visit(FormalParameter node)
          Visits a FormalParameter
 java.lang.Object visit(ForStatement node)
          Visits a ForStatement
 java.lang.Object visit(FunctionCall node)
          Visits a FunctionCall
 java.lang.Object visit(GreaterExpression node)
          Visits a GreaterExpression
 java.lang.Object visit(GreaterOrEqualExpression node)
          Visits a GreaterOrEqualExpression
 java.lang.Object visit(IfThenElseStatement node)
          Visits an IfThenElseStatement
 java.lang.Object visit(IfThenStatement node)
          Visits an IfThenStatement
 java.lang.Object visit(ImportDeclaration node)
          Visits an ImportDeclaration
 java.lang.Object visit(InnerAllocation node)
          Visits a InnerAllocation
 java.lang.Object visit(InstanceOfExpression node)
          Visits a InstanceOfExpression
 java.lang.Object visit(LabeledStatement node)
          Visits a LabeledStatement
 java.lang.Object visit(LessExpression node)
          Visits a LessExpression
 java.lang.Object visit(LessOrEqualExpression node)
          Visits a LessOrEqualExpression
 java.lang.Object visit(Literal node)
          Visits a Literal
 java.lang.Object visit(MethodDeclaration node)
          Visits a MethodDeclaration
 java.lang.Object visit(MinusExpression node)
          Visits a MinusExpression
 java.lang.Object visit(MultiplyAssignExpression node)
          Visits an MultiplyAssignExpression
 java.lang.Object visit(MultiplyExpression node)
          Visits a MultiplyExpression
 java.lang.Object visit(NotEqualExpression node)
          Visits an NotEqualExpression
 java.lang.Object visit(NotExpression node)
          Visits a NotExpression
 java.lang.Object visit(ObjectFieldAccess node)
          Visits an ObjectFieldAccess
 java.lang.Object visit(ObjectMethodCall node)
          Visits an ObjectMethodCall
 java.lang.Object visit(OrExpression node)
          Visits an OrExpression
 java.lang.Object visit(PackageDeclaration node)
          Visits a PackageDeclaration
 java.lang.Object visit(PlusExpression node)
          Visits a PlusExpression
 java.lang.Object visit(PostDecrement node)
          Visits a PostDecrement
 java.lang.Object visit(PostIncrement node)
          Visits a PostIncrement
 java.lang.Object visit(PreDecrement node)
          Visits a PreDecrement
 java.lang.Object visit(PreIncrement node)
          Visits a PreIncrement
 java.lang.Object visit(PrimitiveType node)
          Visits a PrimitiveType
 java.lang.Object visit(QualifiedName node)
          Visits a QualifiedName
 java.lang.Object visit(ReferenceType node)
          Visits a ReferenceType
 java.lang.Object visit(RemainderAssignExpression node)
          Visits an RemainderAssignExpression
 java.lang.Object visit(RemainderExpression node)
          Visits a RemainderExpression
 java.lang.Object visit(ReturnStatement node)
          Visits a ReturnStatement
 java.lang.Object visit(ShiftLeftAssignExpression node)
          Visits a ShiftLeftAssignExpression
 java.lang.Object visit(ShiftLeftExpression node)
          Visits a ShiftLeftExpression
 java.lang.Object visit(ShiftRightAssignExpression node)
          Visits a ShiftRightAssignExpression
 java.lang.Object visit(ShiftRightExpression node)
          Visits a ShiftRightExpression
 java.lang.Object visit(SimpleAllocation node)
          Visits a SimpleAllocation
 java.lang.Object visit(SimpleAssignExpression node)
          Visits a SimpleAssignExpression
 java.lang.Object visit(StaticFieldAccess node)
          Visits a StaticFieldAccess
 java.lang.Object visit(StaticMethodCall node)
          Visits a StaticMethodCall
 java.lang.Object visit(SubtractAssignExpression node)
          Visits an SubtractAssignExpression
 java.lang.Object visit(SubtractExpression node)
          Visits a SubtractExpression
 java.lang.Object visit(SuperFieldAccess node)
          Visits a SuperFieldAccess
 java.lang.Object visit(SuperMethodCall node)
          Visits a SuperMethodCall
 java.lang.Object visit(SwitchBlock node)
          Visits a SwitchBlock
 java.lang.Object visit(SwitchStatement node)
          Visits a SwitchStatement
 java.lang.Object visit(SynchronizedStatement node)
          Visits a SynchronizedStatement
 java.lang.Object visit(ThrowStatement node)
          Visits a ThrowStatement
 java.lang.Object visit(TryStatement node)
          Visits a TryStatement
 java.lang.Object visit(TypeExpression node)
          Visits a TypeExpression
 java.lang.Object visit(UnsignedShiftRightAssignExpression node)
          Visits a UnsignedShiftRightAssignExpression
 java.lang.Object visit(UnsignedShiftRightExpression node)
          Visits a UnsignedShiftRightExpression
 java.lang.Object visit(VariableDeclaration node)
          Visits a VariableDeclaration
 java.lang.Object visit(WhileStatement node)
          Visits a WhileStatement
 
Methods inherited from class koala.dynamicjava.tree.visitor.VisitorObject
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TypeChecker

public TypeChecker(Context ctx)
Creates a new name visitor

Parameters:
ctx - the context
Method Detail

visit

public java.lang.Object visit(PackageDeclaration node)
Visits a PackageDeclaration

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit
Returns:
null

visit

public java.lang.Object visit(ImportDeclaration node)
Visits an ImportDeclaration

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(WhileStatement node)
Visits a WhileStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ForStatement node)
Visits a ForStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(DoStatement node)
Visits a DoStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SwitchStatement node)
Visits a SwitchStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SwitchBlock node)
Visits a SwitchBlock

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(LabeledStatement node)
Visits a LabeledStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(TryStatement node)
Visits a TryStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(CatchStatement node)
Visits a CatchStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ThrowStatement node)
Visits a ThrowStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ReturnStatement node)
Visits a ReturnStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(IfThenStatement node)
Visits an IfThenStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(IfThenElseStatement node)
Visits an IfThenElseStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SynchronizedStatement node)
Visits a SynchronizedStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(Literal node)
Visits a Literal

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(VariableDeclaration node)
Visits a VariableDeclaration

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(BlockStatement node)
Visits a BlockStatement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ObjectFieldAccess node)
Visits an ObjectFieldAccess

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SuperFieldAccess node)
Visits a SuperFieldAccess

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(StaticFieldAccess node)
Visits a StaticFieldAccess

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ObjectMethodCall node)
Visits an ObjectMethodCall

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(MethodDeclaration node)
Visits a MethodDeclaration

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(FunctionCall node)
Visits a FunctionCall

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SuperMethodCall node)
Visits a SuperMethodCall

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(StaticMethodCall node)
Visits a StaticMethodCall

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SimpleAssignExpression node)
Visits a SimpleAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(QualifiedName node)
Visits a QualifiedName

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SimpleAllocation node)
Visits a SimpleAllocation

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(InnerAllocation node)
Visits a InnerAllocation

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ClassAllocation node)
Visits a ClassAllocation

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ArrayAllocation node)
Visits an ArrayAllocation

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ArrayInitializer node)
Visits a ArrayInitializer

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ArrayAccess node)
Visits an ArrayAccess

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(PrimitiveType node)
Visits a PrimitiveType

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ReferenceType node)
Visits a ReferenceType

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ArrayType node)
Visits a ArrayType

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(TypeExpression node)
Visits a TypeExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(NotExpression node)
Visits a NotExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ComplementExpression node)
Visits a ComplementExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(PlusExpression node)
Visits a PlusExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(MinusExpression node)
Visits a MinusExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(AddExpression node)
Visits an AddExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(AddAssignExpression node)
Visits an AddAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SubtractExpression node)
Visits a SubtractExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(SubtractAssignExpression node)
Visits an SubtractAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(MultiplyExpression node)
Visits a MultiplyExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(MultiplyAssignExpression node)
Visits an MultiplyAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(DivideExpression node)
Visits a DivideExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(DivideAssignExpression node)
Visits an DivideAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(RemainderExpression node)
Visits a RemainderExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(RemainderAssignExpression node)
Visits an RemainderAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(EqualExpression node)
Visits an EqualExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(NotEqualExpression node)
Visits an NotEqualExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(LessExpression node)
Visits a LessExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(LessOrEqualExpression node)
Visits a LessOrEqualExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(GreaterExpression node)
Visits a GreaterExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(GreaterOrEqualExpression node)
Visits a GreaterOrEqualExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(BitAndExpression node)
Visits a BitAndExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(BitAndAssignExpression node)
Visits a BitAndAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(BitOrExpression node)
Visits a BitOrExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(BitOrAssignExpression node)
Visits a BitOrAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ExclusiveOrExpression node)
Visits a ExclusiveOrExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ExclusiveOrAssignExpression node)
Visits a ExclusiveOrAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ShiftLeftExpression node)
Visits a ShiftLeftExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ShiftLeftAssignExpression node)
Visits a ShiftLeftAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ShiftRightExpression node)
Visits a ShiftRightExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ShiftRightAssignExpression node)
Visits a ShiftRightAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(UnsignedShiftRightExpression node)
Visits a UnsignedShiftRightExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(UnsignedShiftRightAssignExpression node)
Visits a UnsignedShiftRightAssignExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(AndExpression node)
Visits an AndExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(OrExpression node)
Visits an OrExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(InstanceOfExpression node)
Visits a InstanceOfExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(ConditionalExpression node)
Visits a ConditionalExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(FormalParameter node)
Visits a FormalParameter

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit
Returns:
the class of the parameter

visit

public java.lang.Object visit(PostIncrement node)
Visits a PostIncrement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(PreIncrement node)
Visits a PreIncrement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(PostDecrement node)
Visits a PostDecrement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(PreDecrement node)
Visits a PreDecrement

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit

visit

public java.lang.Object visit(CastExpression node)
Visits a CastExpression

Specified by:
visit in interface Visitor
Overrides:
visit in class VisitorObject
Parameters:
node - the node to visit


Copyright © 2001 Stephane Hillion. All Rights Reserved.