## Hierarchy For All Packages

Package Hierarchies:
  mycompiler, mycompiler.mybytecode, mycompiler.myclass, mycompiler.myexception, mycompiler.mymodifier, mycompiler.myoperator, mycompiler.myparser, mycompiler.mystatement, mycompiler.mytest, mycompiler.mytype, mycompiler.mytypereconstruction, mycompiler.mytypereconstruction.replacementlistener, mycompiler.mytypereconstruction.set, mycompiler.mytypereconstruction.typeassumption, mycompiler.mytypereconstruction.typeassumptionkey, mycompiler.mytypereconstruction.unify, mycompiler.unused

## Class Hierarchy

- java.lang.Object
  - mycompiler.mystatement.ArgumentList
  - mycompiler.mybytecode.Attribute
    - mycompiler.mybytecode.AttributeInfo
    - mycompiler.mybytecode.CodeAttribute
  - mycompiler.mytypereconstruction.CHelper
  - mycompiler.mytypereconstruction.CIntersectionType
  - mycompiler.myclass.Class
  - mycompiler.myclass.ClassBody
  - mycompiler.myclass.ClassDeclId
  - mycompiler.mybytecode.ClassFile
  - mycompiler.mytypereconstruction.CMultiplyTuple
  - mycompiler.unused.ConstantValueAttribute
  - mycompiler.mybytecode.CPInfo
    - mycompiler.mybytecode.CONSTANT_Class_info
    - mycompiler.mybytecode.CONSTANT_Double_info
    - mycompiler.mybytecode.CONSTANT_Fieldref_info
    - mycompiler.mybytecode.CONSTANT_Float_info
    - mycompiler.mybytecode.CONSTANT_Integer_info
    - mycompiler.mybytecode.CONSTANT_InterfaceMethodref_info
    - mycompiler.mybytecode.CONSTANT_Long_info
    - mycompiler.mybytecode.CONSTANT_Methodref_info
    - mycompiler.mybytecode.CONSTANT_NameAndType_info
    - mycompiler.mybytecode.CONSTANT_String_info
    - mycompiler.mybytecode.CONSTANT_Utf8_info
  - mycompiler.mytypereconstruction.CReconstructionTuple
  - mycompiler.mytypereconstruction.replacementlistener.CReplaceTypeEvent
  - mycompiler.mytypereconstruction.set.CSet<E>
    - mycompiler.mytypereconstruction.set.CHashtableSet<E>
      - mycompiler.mytypereconstruction.set.CTypeAssumptionSet
    - mycompiler.mytypereconstruction.set.CMengeSet<E>
      - mycompiler.mytypereconstruction.set.CMultiplyTupleSet
      - mycompiler.mytypereconstruction.set.CReconstructionTupleSet
      - mycompiler.mytypereconstruction.set.CSubstitutionSet
      - mycompiler.mytypereconstruction.set.CTripleSet
  - mycompiler.mytest.CSimpleTest
  - mycompiler.mytypereconstruction.CSubstitution
  - mycompiler.mytypereconstruction.CSupportData
  - mycompiler.mytypereconstruction.CTriple
  - mycompiler.mytypereconstruction.typeassumption.CTypeAssumption (implements mycompiler.mytypereconstruction.set.IHashSetElement)
    - mycompiler.mytypereconstruction.typeassumption.CInstVarTypeAssumption
    - mycompiler.mytypereconstruction.typeassumption.CLocalVarTypeAssumption
    - mycompiler.mytypereconstruction.typeassumption.CMethodTypeAssumption
    - mycompiler.mytypereconstruction.typeassumption.CParaTypeAssumption
  - mycompiler.mytypereconstruction.typeassumptionkey.CTypeAssumptionKey (implements mycompiler.mytypereconstruction.set.IHashSetKey)
    - mycompiler.mytypereconstruction.typeassumptionkey.CInstVarKey
    - mycompiler.mytypereconstruction.typeassumptionkey.CLocalVarKey
    - mycompiler.mytypereconstruction.typeassumptionkey.CMethodKey
    - mycompiler.mytypereconstruction.typeassumptionkey.CMethodParaKey
  - mycompiler.mytypereconstruction.CTypeReconstructionResult
  - mycompiler.myclass.DeclId
  - mycompiler.myclass.ExceptionList
  - mycompiler.mybytecode.ExceptionTable
  - mycompiler.mytypereconstruction.unify.FC_TTO
  - mycompiler.myclass.FieldDecl
    - mycompiler.myclass.InstVarDecl (implements mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener)
    - mycompiler.myclass.Method (implements mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener)
      - mycompiler.myclass.Constructor
  - mycompiler.mybytecode.FieldInfo
  - mycompiler.myclass.FormalParameter (implements mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener)
  - mycompiler.myparser.JavaLexer
    - mycompiler.myparser.Scanner (implements mycompiler.myparser.JavaParser.yyInput)
  - mycompiler.myparser.JavaParser
    - mycompiler.unused.JavaCompiler
  - mycompiler.mybytecode.JVMCode
  - mycompiler.mybytecode.Key
  - mycompiler.mybytecode.MethodInfo
  - mycompiler.mymodifier.Modifier
    - mycompiler.mymodifier.Abstract
    - mycompiler.mymodifier.Private
    - mycompiler.mymodifier.Protected
    - mycompiler.mymodifier.Public
    - mycompiler.mymodifier.Static
  - mycompiler.mymodifier.Modifiers
  - mycompiler.MyCompiler (implements mycompiler.MyCompilerAPI)
  - mycompiler.myoperator.Operator
    - mycompiler.myoperator.AddOp
      - mycompiler.myoperator.MinusOp
      - mycompiler.myoperator.PlusOp
    - mycompiler.myoperator.LogOp
      - mycompiler.myoperator.AndOp
      - mycompiler.myoperator.OrOp
    - mycompiler.myoperator.MulOp
      - mycompiler.myoperator.DivideOp
      - mycompiler.myoperator.ModuloOp
      - mycompiler.myoperator.TimesOp
    - mycompiler.myoperator.RelOp
      - mycompiler.myoperator.EqualOp
      - mycompiler.myoperator.GreaterEquOp
      - mycompiler.myoperator.GreaterOp
      - mycompiler.myoperator.LessEquOp
      - mycompiler.myoperator.LessOp
      - mycompiler.myoperator.NotEqualOp
  - mycompiler.mytype.Pair
  - mycompiler.mytype.ParaList
  - mycompiler.myclass.ParameterList
  - mycompiler.mystatement.Receiver
  - mycompiler.myexception.SCExcept
  - mycompiler.SourceFile
  - mycompiler.mystatement.Statement
    - mycompiler.mystatement.Block
    - mycompiler.mystatement.EmptyStmt
    - mycompiler.mystatement.ExprStmt (implements mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener)
      - mycompiler.mystatement.Expr
        - mycompiler.mystatement.Assign
        - mycompiler.mystatement.BinaryExpr
          - mycompiler.mystatement.Binary
          - mycompiler.mystatement.InstanceOf
        - mycompiler.mystatement.InstVar
        - mycompiler.mystatement.Literal
          - mycompiler.mystatement.BoolLiteral
          - mycompiler.mystatement.CharLiteral
          - mycompiler.mystatement.IntLiteral
          - mycompiler.mystatement.Null
          - mycompiler.mystatement.StringLiteral
        - mycompiler.mystatement.LocalOrFieldVar
        - mycompiler.mystatement.MethodCall
        - mycompiler.mystatement.NewArray
        - mycompiler.mystatement.NewClass
        - mycompiler.mystatement.This
        - mycompiler.mystatement.UnaryExpr
          - mycompiler.mystatement.CastExpr
          - mycompiler.mystatement.NegativeExpr
          - mycompiler.mystatement.NotExpr
          - mycompiler.mystatement.PositivExpr
          - mycompiler.mystatement.PostDecExpr
          - mycompiler.mystatement.PostIncExpr
          - mycompiler.mystatement.PreDecExpr
          - mycompiler.mystatement.PreIncExpr
    - mycompiler.mystatement.IfStmt
    - mycompiler.mystatement.LocalVarDecl (implements mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener)
    - mycompiler.mystatement.Return
    - mycompiler.mystatement.WhileStmt
  - mycompiler.myclass.Status
    - mycompiler.unused.Import
    - mycompiler.myclass.UserDef
  - mycompiler.unused.TestClass
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - mycompiler.myparser.JavaParser.yyException
      - mycompiler.myexception.JVMCodeException
      - mycompiler.myexception.MatchException
      - java.lang.RuntimeException
        - mycompiler.myexception.CTypeReconstructionException
      - mycompiler.myexception.SCClassBodyException
      - mycompiler.myexception.SCClassException
      - mycompiler.myexception.SCException
      - mycompiler.myexception.SCMethodException
      - mycompiler.myexception.SCStatementException
  - mycompiler.myparser.Token
  - mycompiler.mytype.Type
    - mycompiler.mytype.BaseType
      - mycompiler.mytype.BooleanType
      - mycompiler.mytype.CharacterType
      - mycompiler.mytype.IntegerType
    - mycompiler.mytype.GenericTypeVar
    - mycompiler.mytype.RefType
      - mycompiler.mytype.Void
    - mycompiler.mytype.ReturnType
    - mycompiler.mytype.TyploseVariable (implements mycompiler.mytypereconstruction.replacementlistener.IReplaceTypeEventProvider)
  - mycompiler.mystatement.UnaryMinus
  - mycompiler.mystatement.UnaryNot
  - mycompiler.mystatement.UnaryPlus
  - mycompiler.mytypereconstruction.unify.Unify
  - mycompiler.myclass.UsedId

## Interface Hierarchy

- mycompiler.mytypereconstruction.set.IHashSetElement
- mycompiler.mytypereconstruction.set.IHashSetKey
- mycompiler.mytypereconstruction.replacementlistener.IReplaceTypeEventProvider
- mycompiler.mytypereconstruction.replacementlistener.ITypeReplacementListener
- mycompiler.myparser.JavaParser.yyInput
- mycompiler.MyCompilerAPI