# Interface Visitor

All Known Implementing Classes:
  `EmptyVisitor, ExecutionVisitor, InstConstraintVisitor`

public interface Visitor
Interface implementing the Visitor pattern programming style. I.e., a class that implements this interface can handle all types of instructions with the properly typed methods just by calling the accept() method.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `visitAALOAD(AALOAD obj)`
  Visits an AALOAD instruction.
  `void`
  `visitAASTORE(AASTORE obj)`
  Visits an AASTORE instruction.
  `void`
  `visitACONST_NULL(ACONST_NULL obj)`
  Visits an ACONST_NULL instruction.
  `void`
  `visitAllocationInstruction(AllocationInstruction obj)`
  Visits an AllocationInstruction.
  `void`
  `visitALOAD(ALOAD obj)`
  Visits an ALOAD instruction.
  `void`
  `visitANEWARRAY(ANEWARRAY obj)`
  Visits an ANEWARRAY instruction.
  `void`
  `visitARETURN(ARETURN obj)`
  Visits an ARETURN instruction.
  `void`
  `visitArithmeticInstruction(ArithmeticInstruction obj)`
  Visits an ArithmeticInstruction.
  `void`
  `visitArrayInstruction(ArrayInstruction obj)`
  Visits an ArrayInstruction.
  `void`
  `visitARRAYLENGTH(ARRAYLENGTH obj)`
  Visits an ARRAYLENGTH instruction.
  `void`
  `visitASTORE(ASTORE obj)`
  Visits an ASTORE instruction.
  `void`
  `visitATHROW(ATHROW obj)`
  Visits an ATHROW instruction.
  `void`
  `visitBALOAD(BALOAD obj)`
  Visits a BALOAD instruction.
  `void`
  `visitBASTORE(BASTORE obj)`
  Visits a BASTORE instruction.
  `void`
  `visitBIPUSH(BIPUSH obj)`
  Visits a BIPUSH instruction.
  `void`
  `visitBranchInstruction(BranchInstruction obj)`
  Visits a BranchInstruction.
  `void`
  `visitBREAKPOINT(BREAKPOINT obj)`
  Visits a BREAKPOINT instruction.
  `void`
  `visitCALOAD(CALOAD obj)`
  Visits a CALOAD instruction.
  `void`
  `visitCASTORE(CASTORE obj)`
  Visits a CASTORE instruction.
  `void`
  `visitCHECKCAST(CHECKCAST obj)`
  Visits a CHECKCAST instruction.
  `void`
  `visitConstantPushInstruction(ConstantPushInstruction obj)`
  Visits a ConstantPushInstruction.
  `void`
  `visitConversionInstruction(ConversionInstruction obj)`
  Visits a ConversionInstruction.
  `void`
  `visitCPInstruction(CPInstruction obj)`
  Visits a CPInstruction.
  `void`
  `visitD2F(D2F obj)`
  Visits a D2F instruction.
  `void`
  `visitD2I(D2I obj)`
  Visits a D2I instruction.
  `void`
  `visitD2L(D2L obj)`
  Visits a D2L instruction.
  `void`
  `visitDADD(DADD obj)`
  Visits a DADD instruction.
  `void`
  `visitDALOAD(DALOAD obj)`
  Visits a DALOAD instruction.
  `void`
  `visitDASTORE(DASTORE obj)`
  Visits a DASTORE instruction.
  `void`
  `visitDCMPG(DCMPG obj)`
  Visits a DCMPG instruction.
  `void`
  `visitDCMPL(DCMPL obj)`
  Visits a DCMPL instruction.
  `void`
  `visitDCONST(DCONST obj)`
  Visits a DCONST instruction.
  `void`
  `visitDDIV(DDIV obj)`
  Visits a DDIV instruction.
  `void`
  `visitDLOAD(DLOAD obj)`
  Visits a DLOAD instruction.
  `void`
  `visitDMUL(DMUL obj)`
  Visits a DMUL instruction.
  `void`
  `visitDNEG(DNEG obj)`
  Visits a DNEG instruction.
  `void`
  `visitDREM(DREM obj)`
  Visits a DREM instruction.
  `void`
  `visitDRETURN(DRETURN obj)`
  Visits a DRETURN instruction.
  `void`
  `visitDSTORE(DSTORE obj)`
  Visits a DSTORE instruction.
  `void`
  `visitDSUB(DSUB obj)`
  Visits a DSUB instruction.
  `void`
  `visitDUP(DUP obj)`
  Visits a DUP instruction.
  `void`
  `visitDUP_X1(DUP_X1 obj)`
  Visits a DUP_X1 instruction.
  `void`
  `visitDUP_X2(DUP_X2 obj)`
  Visits a DUP_X2 instruction.
  `void`
  `visitDUP2(DUP2 obj)`
  Visits a DUP2 instruction.
  `void`
  `visitDUP2_X1(DUP2_X1 obj)`
  Visits a DUP2_X1 instruction.
  `void`
  `visitDUP2_X2(DUP2_X2 obj)`
  Visits a DUP2_X2 instruction.
  `void`
  `visitExceptionThrower(ExceptionThrower obj)`
  Visits an ExceptionThrower.
  `void`
  `visitF2D(F2D obj)`
  Visits an F2D instruction.
  `void`
  `visitF2I(F2I obj)`
  Visits an F2I instruction.
  `void`
  `visitF2L(F2L obj)`
  Visits an F2L instruction.
  `void`
  `visitFADD(FADD obj)`
  Visits an FADD instruction.
  `void`
  `visitFALOAD(FALOAD obj)`
  Visits an FALOAD instruction.
  `void`
  `visitFASTORE(FASTORE obj)`
  Visits an FASTORE instruction.
  `void`
  `visitFCMPG(FCMPG obj)`
  Visits an FCMPG instruction.
  `void`
  `visitFCMPL(FCMPL obj)`
  Visits an FCMPL instruction.
  `void`
  `visitFCONST(FCONST obj)`
  Visits an FCONST instruction.
  `void`
  `visitFDIV(FDIV obj)`
  Visits an FDIV instruction.
  `void`
  `visitFieldInstruction(FieldInstruction obj)`
  Visits a FieldInstruction.
  `void`
  `visitFieldOrMethod(FieldOrMethod obj)`
  Visits a FieldOrMethod.
  `void`
  `visitFLOAD(FLOAD obj)`
  Visits an FLOAD instruction.
  `void`
  `visitFMUL(FMUL obj)`
  Visits an FMUL instruction.
  `void`
  `visitFNEG(FNEG obj)`
  Visits an FNEG instruction.
  `void`
  `visitFREM(FREM obj)`
  Visits an FREM instruction.
  `void`
  `visitFRETURN(FRETURN obj)`
  Visits an FRETURN instruction.
  `void`
  `visitFSTORE(FSTORE obj)`
  Visits an FSTORE instruction.
  `void`
  `visitFSUB(FSUB obj)`
  Visits an FSUB instruction.
  `void`
  `visitGETFIELD(GETFIELD obj)`
  Visits a GETFIELD instruction.
  `void`
  `visitGETSTATIC(GETSTATIC obj)`
  Visits a GETSTATIC instruction.
  `void`
  `visitGOTO(GOTO obj)`
  Visits a GOTO instruction.
  `void`
  `visitGOTO_W(GOTO_W obj)`
  Visits a GOTO_W instruction.
  `void`
  `visitGotoInstruction(GotoInstruction obj)`
  Visits a GotoInstruction.
  `void`
  `visitI2B(I2B obj)`
  Visits an I2B instruction.
  `void`
  `visitI2C(I2C obj)`
  Visits an I2C instruction.
  `void`
  `visitI2D(I2D obj)`
  Visits an I2D instruction.
  `void`
  `visitI2F(I2F obj)`
  Visits an I2F instruction.
  `void`
  `visitI2L(I2L obj)`
  Visits an I2L instruction.
  `void`
  `visitI2S(I2S obj)`
  Visits an I2S instruction.
  `void`
  `visitIADD(IADD obj)`
  Visits an IADD instruction.
  `void`
  `visitIALOAD(IALOAD obj)`
  Visits an IALOAD instruction.
  `void`
  `visitIAND(IAND obj)`
  Visits an IAND instruction.
  `void`
  `visitIASTORE(IASTORE obj)`
  Visits an IASTORE instruction.
  `void`
  `visitICONST(ICONST obj)`
  Visits an ICONST instruction.
  `void`
  `visitIDIV(IDIV obj)`
  Visits an IDIV instruction.
  `void`
  `visitIF_ACMPEQ(IF_ACMPEQ obj)`
  Visits an IF_ACMPEQ instruction.
  `void`
  `visitIF_ACMPNE(IF_ACMPNE obj)`
  Visits an IF_ACMPNE instruction.
  `void`
  `visitIF_ICMPEQ(IF_ICMPEQ obj)`
  Visits an IF_ICMPEQ instruction.
  `void`
  `visitIF_ICMPGE(IF_ICMPGE obj)`
  Visits an IF_ICMPGE instruction.
  `void`
  `visitIF_ICMPGT(IF_ICMPGT obj)`
  Visits an IF_ICMPGT instruction.
  `void`
  `visitIF_ICMPLE(IF_ICMPLE obj)`
  Visits an IF_ICMPLE instruction.
  `void`
  `visitIF_ICMPLT(IF_ICMPLT obj)`
  Visits an IF_ICMPLT instruction.
  `void`
  `visitIF_ICMPNE(IF_ICMPNE obj)`
  Visits an IF_ICMPNE instruction.
  `void`
  `visitIFEQ(IFEQ obj)`
  Visits an IFEQ instruction.
  `void`
  `visitIFGE(IFGE obj)`
  Visits an IFGE instruction.
  `void`
  `visitIFGT(IFGT obj)`
  Visits an IFGT instruction.
  `void`
  `visitIfInstruction(IfInstruction obj)`
  Visits an IfInstruction.
  `void`
  `visitIFLE(IFLE obj)`
  Visits an IFLE instruction.
  `void`
  `visitIFLT(IFLT obj)`
  Visits an IFLT instruction.
  `void`
  `visitIFNE(IFNE obj)`
  Visits an IFNE instruction.
  `void`
  `visitIFNONNULL(IFNONNULL obj)`
  Visits an IFNONNULL instruction.
  `void`
  `visitIFNULL(IFNULL obj)`
  Visits an IFNULL instruction.
  `void`
  `visitIINC(IINC obj)`
  Visits an IINC instruction.
  `void`
  `visitILOAD(ILOAD obj)`
  Visits an ILOAD instruction.
  `void`
  `visitIMPDEP1(IMPDEP1 obj)`
  Visits an IMPDEP1 instruction.
  `void`
  `visitIMPDEP2(IMPDEP2 obj)`
  Visits an IMPDEP2 instruction.
  `void`
  `visitIMUL(IMUL obj)`
  Visits an IMUL instruction.
  `void`
  `visitINEG(INEG obj)`
  Visits an INEG instruction.
  `void`
  `visitINSTANCEOF(INSTANCEOF obj)`
  Visits an INSTANCEOF instruction.
  `void`
  `visitINVOKEDYNAMIC(INVOKEDYNAMIC obj)`
  Visits an INVOKEDYNAMIC instruction.
  `void`
  `visitInvokeInstruction(InvokeInstruction obj)`
  Visits an InvokeInstruction.
  `void`
  `visitINVOKEINTERFACE(INVOKEINTERFACE obj)`
  Visits an INVOKEINTERFACE instruction.
  `void`
  `visitINVOKESPECIAL(INVOKESPECIAL obj)`
  Visits an INVOKESPECIAL instruction.
  `void`
  `visitINVOKESTATIC(INVOKESTATIC obj)`
  Visits an INVOKESTATIC instruction.
  `void`
  `visitINVOKEVIRTUAL(INVOKEVIRTUAL obj)`
  Visits an INVOKEVIRTUAL instruction.
  `void`
  `visitIOR(IOR obj)`
  Visits an IOR instruction.
  `void`
  `visitIREM(IREM obj)`
  Visits an IREM instruction.
  `void`
  `visitIRETURN(IRETURN obj)`
  Visits an IRETURN instruction.
  `void`
  `visitISHL(ISHL obj)`
  Visits an ISHL instruction.
  `void`
  `visitISHR(ISHR obj)`
  Visits an ISHR instruction.
  `void`
  `visitISTORE(ISTORE obj)`
  Visits an ISTORE instruction.
  `void`
  `visitISUB(ISUB obj)`
  Visits an ISUB instruction.
  `void`
  `visitIUSHR(IUSHR obj)`
  Visits an IUSHR instruction.
  `void`
  `visitIXOR(IXOR obj)`
  Visits an IXOR instruction.
  `void`
  `visitJSR(JSR obj)`
  Visits a JSR instruction.
  `void`
  `visitJSR_W(JSR_W obj)`
  Visits a JSR_W instruction.
  `void`
  `visitJsrInstruction(JsrInstruction obj)`
  Visits a JsrInstruction.
  `void`
  `visitL2D(L2D obj)`
  Visits an L2D instruction.
  `void`
  `visitL2F(L2F obj)`
  Visits an L2F instruction.
  `void`
  `visitL2I(L2I obj)`
  Visits an L2I instruction.
  `void`
  `visitLADD(LADD obj)`
  Visits an LADD instruction.
  `void`
  `visitLALOAD(LALOAD obj)`
  Visits an LALOAD instruction.
  `void`
  `visitLAND(LAND obj)`
  Visits an LAND instruction.
  `void`
  `visitLASTORE(LASTORE obj)`
  Visits an LASTORE instruction.
  `void`
  `visitLCMP(LCMP obj)`
  Visits an LCMP instruction.
  `void`
  `visitLCONST(LCONST obj)`
  Visits an LCONST instruction.
  `void`
  `visitLDC(LDC obj)`
  Visits an LDC instruction.
  `void`
  `visitLDC2_W(LDC2_W obj)`
  Visits an LDC2_W instruction.
  `void`
  `visitLDIV(LDIV obj)`
  Visits an LDIV instruction.
  `void`
  `visitLLOAD(LLOAD obj)`
  Visits an LLOAD instruction.
  `void`
  `visitLMUL(LMUL obj)`
  Visits an LMUL instruction.
  `void`
  `visitLNEG(LNEG obj)`
  Visits an LNEG instruction.
  `void`
  `visitLoadClass(LoadClass obj)`
  Visits a LoadClass.
  `void`
  `visitLoadInstruction(LoadInstruction obj)`
  Visits a LoadInstruction.
  `void`
  `visitLocalVariableInstruction(LocalVariableInstruction obj)`
  Visits a LocalVariableInstruction.
  `void`
  `visitLOOKUPSWITCH(LOOKUPSWITCH obj)`
  Visits a LOOKUPSWITCH instruction.
  `void`
  `visitLOR(LOR obj)`
  Visits an LOR instruction.
  `void`
  `visitLREM(LREM obj)`
  Visits an LREM instruction.
  `void`
  `visitLRETURN(LRETURN obj)`
  Visits an LRETURN instruction.
  `void`
  `visitLSHL(LSHL obj)`
  Visits an LSHL instruction.
  `void`
  `visitLSHR(LSHR obj)`
  Visits an LSHR instruction.
  `void`
  `visitLSTORE(LSTORE obj)`
  Visits an LSTORE instruction.
  `void`
  `visitLSUB(LSUB obj)`
  Visits an LSUB instruction.
  `void`
  `visitLUSHR(LUSHR obj)`
  Visits an LUSHR instruction.
  `void`
  `visitLXOR(LXOR obj)`
  Visits an LXOR instruction.
  `void`
  `visitMONITORENTER(MONITORENTER obj)`
  Visits a MONITORENTER instruction.
  `void`
  `visitMONITOREXIT(MONITOREXIT obj)`
  Visits a MONITOREXIT instruction.
  `void`
  `visitMULTIANEWARRAY(MULTIANEWARRAY obj)`
  Visits a MULTIANEWARRAY instruction.
  `void`
  `visitNEW(NEW obj)`
  Visits a NEW instruction.
  `void`
  `visitNEWARRAY(NEWARRAY obj)`
  Visits a NEWARRAY instruction.
  `void`
  `visitNOP(NOP obj)`
  Visits a NOP instruction.
  `void`
  `visitPOP(POP obj)`
  Visits a POP instruction.
  `void`
  `visitPOP2(POP2 obj)`
  Visits a POP2 instruction.
  `void`
  `visitPopInstruction(PopInstruction obj)`
  Visits a PopInstruction.
  `void`
  `visitPushInstruction(PushInstruction obj)`
  Visits a PushInstruction.
  `void`
  `visitPUTFIELD(PUTFIELD obj)`
  Visits a PUTFIELD instruction.
  `void`
  `visitPUTSTATIC(PUTSTATIC obj)`
  Visits a PUTSTATIC instruction.
  `void`
  `visitRET(RET obj)`
  Visits a RET instruction.
  `void`
  `visitRETURN(RETURN obj)`
  Visits a RETURN instruction.
  `void`
  `visitReturnInstruction(ReturnInstruction obj)`
  Visits a ReturnInstruction.
  `void`
  `visitSALOAD(SALOAD obj)`
  Visits a SALOAD instruction.
  `void`
  `visitSASTORE(SASTORE obj)`
  Visits a SASTORE instruction.
  `void`
  `visitSelect(Select obj)`
  Visits a Select instruction.
  `void`
  `visitSIPUSH(SIPUSH obj)`
  Visits a SIPUSH instruction.
  `void`
  `visitStackConsumer(StackConsumer obj)`
  Visits a StackConsumer.
  `void`
  `visitStackInstruction(StackInstruction obj)`
  Visits a StackInstruction.
  `void`
  `visitStackProducer(StackProducer obj)`
  Visits a StackProducer.
  `void`
  `visitStoreInstruction(StoreInstruction obj)`
  Visits a StoreInstruction.
  `void`
  `visitSWAP(SWAP obj)`
  Visits a SWAP instruction.
  `void`
  `visitTABLESWITCH(TABLESWITCH obj)`
  Visits a TABLESWITCH instruction.
  `void`
  `visitTypedInstruction(TypedInstruction obj)`
  Visits a TypedInstruction.
  `void`
  `visitUnconditionalBranch(UnconditionalBranch obj)`
  Visits an UnconditionalBranch.
  `void`
  `visitVariableLengthInstruction(VariableLengthInstruction obj)`
  Visits a VariableLengthInstruction.

- ## Method Details

  - ### visitAALOAD

    void visitAALOAD(AALOAD obj)
    Visits an AALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitAASTORE

    void visitAASTORE(AASTORE obj)
    Visits an AASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitACONST_NULL

    void visitACONST_NULL(ACONST_NULL obj)
    Visits an ACONST_NULL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitAllocationInstruction

    void visitAllocationInstruction(AllocationInstruction obj)
    Visits an AllocationInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitALOAD

    void visitALOAD(ALOAD obj)
    Visits an ALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitANEWARRAY

    void visitANEWARRAY(ANEWARRAY obj)
    Visits an ANEWARRAY instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitARETURN

    void visitARETURN(ARETURN obj)
    Visits an ARETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitArithmeticInstruction

    void visitArithmeticInstruction(ArithmeticInstruction obj)
    Visits an ArithmeticInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitArrayInstruction

    void visitArrayInstruction(ArrayInstruction obj)
    Visits an ArrayInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitARRAYLENGTH

    void visitARRAYLENGTH(ARRAYLENGTH obj)
    Visits an ARRAYLENGTH instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitASTORE

    void visitASTORE(ASTORE obj)
    Visits an ASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitATHROW

    void visitATHROW(ATHROW obj)
    Visits an ATHROW instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitBALOAD

    void visitBALOAD(BALOAD obj)
    Visits a BALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitBASTORE

    void visitBASTORE(BASTORE obj)
    Visits a BASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitBIPUSH

    void visitBIPUSH(BIPUSH obj)
    Visits a BIPUSH instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitBranchInstruction

    void visitBranchInstruction(BranchInstruction obj)
    Visits a BranchInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitBREAKPOINT

    void visitBREAKPOINT(BREAKPOINT obj)
    Visits a BREAKPOINT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitCALOAD

    void visitCALOAD(CALOAD obj)
    Visits a CALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitCASTORE

    void visitCASTORE(CASTORE obj)
    Visits a CASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitCHECKCAST

    void visitCHECKCAST(CHECKCAST obj)
    Visits a CHECKCAST instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitConstantPushInstruction

    void visitConstantPushInstruction(ConstantPushInstruction obj)
    Visits a ConstantPushInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitConversionInstruction

    void visitConversionInstruction(ConversionInstruction obj)
    Visits a ConversionInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitCPInstruction

    void visitCPInstruction(CPInstruction obj)
    Visits a CPInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitD2F

    void visitD2F(D2F obj)
    Visits a D2F instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitD2I

    void visitD2I(D2I obj)
    Visits a D2I instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitD2L

    void visitD2L(D2L obj)
    Visits a D2L instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDADD

    void visitDADD(DADD obj)
    Visits a DADD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDALOAD

    void visitDALOAD(DALOAD obj)
    Visits a DALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDASTORE

    void visitDASTORE(DASTORE obj)
    Visits a DASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDCMPG

    void visitDCMPG(DCMPG obj)
    Visits a DCMPG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDCMPL

    void visitDCMPL(DCMPL obj)
    Visits a DCMPL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDCONST

    void visitDCONST(DCONST obj)
    Visits a DCONST instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDDIV

    void visitDDIV(DDIV obj)
    Visits a DDIV instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDLOAD

    void visitDLOAD(DLOAD obj)
    Visits a DLOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDMUL

    void visitDMUL(DMUL obj)
    Visits a DMUL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDNEG

    void visitDNEG(DNEG obj)
    Visits a DNEG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDREM

    void visitDREM(DREM obj)
    Visits a DREM instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDRETURN

    void visitDRETURN(DRETURN obj)
    Visits a DRETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDSTORE

    void visitDSTORE(DSTORE obj)
    Visits a DSTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDSUB

    void visitDSUB(DSUB obj)
    Visits a DSUB instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP

    void visitDUP(DUP obj)
    Visits a DUP instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP_X1

    void visitDUP_X1(DUP_X1 obj)
    Visits a DUP_X1 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP_X2

    void visitDUP_X2(DUP_X2 obj)
    Visits a DUP_X2 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP2

    void visitDUP2(DUP2 obj)
    Visits a DUP2 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP2_X1

    void visitDUP2_X1(DUP2_X1 obj)
    Visits a DUP2_X1 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitDUP2_X2

    void visitDUP2_X2(DUP2_X2 obj)
    Visits a DUP2_X2 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitExceptionThrower

    void visitExceptionThrower(ExceptionThrower obj)
    Visits an ExceptionThrower.
    Parameters:
      `obj` - the instruction.

  - ### visitF2D

    void visitF2D(F2D obj)
    Visits an F2D instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitF2I

    void visitF2I(F2I obj)
    Visits an F2I instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitF2L

    void visitF2L(F2L obj)
    Visits an F2L instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFADD

    void visitFADD(FADD obj)
    Visits an FADD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFALOAD

    void visitFALOAD(FALOAD obj)
    Visits an FALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFASTORE

    void visitFASTORE(FASTORE obj)
    Visits an FASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFCMPG

    void visitFCMPG(FCMPG obj)
    Visits an FCMPG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFCMPL

    void visitFCMPL(FCMPL obj)
    Visits an FCMPL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFCONST

    void visitFCONST(FCONST obj)
    Visits an FCONST instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFDIV

    void visitFDIV(FDIV obj)
    Visits an FDIV instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFieldInstruction

    void visitFieldInstruction(FieldInstruction obj)
    Visits a FieldInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFieldOrMethod

    void visitFieldOrMethod(FieldOrMethod obj)
    Visits a FieldOrMethod.
    Parameters:
      `obj` - the instruction.

  - ### visitFLOAD

    void visitFLOAD(FLOAD obj)
    Visits an FLOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFMUL

    void visitFMUL(FMUL obj)
    Visits an FMUL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFNEG

    void visitFNEG(FNEG obj)
    Visits an FNEG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFREM

    void visitFREM(FREM obj)
    Visits an FREM instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFRETURN

    void visitFRETURN(FRETURN obj)
    Visits an FRETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFSTORE

    void visitFSTORE(FSTORE obj)
    Visits an FSTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitFSUB

    void visitFSUB(FSUB obj)
    Visits an FSUB instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitGETFIELD

    void visitGETFIELD(GETFIELD obj)
    Visits a GETFIELD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitGETSTATIC

    void visitGETSTATIC(GETSTATIC obj)
    Visits a GETSTATIC instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitGOTO

    void visitGOTO(GOTO obj)
    Visits a GOTO instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitGOTO_W

    void visitGOTO_W(GOTO_W obj)
    Visits a GOTO_W instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitGotoInstruction

    void visitGotoInstruction(GotoInstruction obj)
    Visits a GotoInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2B

    void visitI2B(I2B obj)
    Visits an I2B instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2C

    void visitI2C(I2C obj)
    Visits an I2C instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2D

    void visitI2D(I2D obj)
    Visits an I2D instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2F

    void visitI2F(I2F obj)
    Visits an I2F instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2L

    void visitI2L(I2L obj)
    Visits an I2L instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitI2S

    void visitI2S(I2S obj)
    Visits an I2S instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIADD

    void visitIADD(IADD obj)
    Visits an IADD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIALOAD

    void visitIALOAD(IALOAD obj)
    Visits an IALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIAND

    void visitIAND(IAND obj)
    Visits an IAND instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIASTORE

    void visitIASTORE(IASTORE obj)
    Visits an IASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitICONST

    void visitICONST(ICONST obj)
    Visits an ICONST instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIDIV

    void visitIDIV(IDIV obj)
    Visits an IDIV instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ACMPEQ

    void visitIF_ACMPEQ(IF_ACMPEQ obj)
    Visits an IF_ACMPEQ instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ACMPNE

    void visitIF_ACMPNE(IF_ACMPNE obj)
    Visits an IF_ACMPNE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPEQ

    void visitIF_ICMPEQ(IF_ICMPEQ obj)
    Visits an IF_ICMPEQ instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPGE

    void visitIF_ICMPGE(IF_ICMPGE obj)
    Visits an IF_ICMPGE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPGT

    void visitIF_ICMPGT(IF_ICMPGT obj)
    Visits an IF_ICMPGT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPLE

    void visitIF_ICMPLE(IF_ICMPLE obj)
    Visits an IF_ICMPLE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPLT

    void visitIF_ICMPLT(IF_ICMPLT obj)
    Visits an IF_ICMPLT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIF_ICMPNE

    void visitIF_ICMPNE(IF_ICMPNE obj)
    Visits an IF_ICMPNE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFEQ

    void visitIFEQ(IFEQ obj)
    Visits an IFEQ instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFGE

    void visitIFGE(IFGE obj)
    Visits an IFGE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFGT

    void visitIFGT(IFGT obj)
    Visits an IFGT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIfInstruction

    void visitIfInstruction(IfInstruction obj)
    Visits an IfInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFLE

    void visitIFLE(IFLE obj)
    Visits an IFLE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFLT

    void visitIFLT(IFLT obj)
    Visits an IFLT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFNE

    void visitIFNE(IFNE obj)
    Visits an IFNE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFNONNULL

    void visitIFNONNULL(IFNONNULL obj)
    Visits an IFNONNULL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIFNULL

    void visitIFNULL(IFNULL obj)
    Visits an IFNULL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIINC

    void visitIINC(IINC obj)
    Visits an IINC instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitILOAD

    void visitILOAD(ILOAD obj)
    Visits an ILOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIMPDEP1

    void visitIMPDEP1(IMPDEP1 obj)
    Visits an IMPDEP1 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIMPDEP2

    void visitIMPDEP2(IMPDEP2 obj)
    Visits an IMPDEP2 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIMUL

    void visitIMUL(IMUL obj)
    Visits an IMUL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINEG

    void visitINEG(INEG obj)
    Visits an INEG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINSTANCEOF

    void visitINSTANCEOF(INSTANCEOF obj)
    Visits an INSTANCEOF instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINVOKEDYNAMIC

    void visitINVOKEDYNAMIC(INVOKEDYNAMIC obj)
    Visits an INVOKEDYNAMIC instruction.
    Parameters:
      `obj` - the instruction.
    Since:
      6.0

  - ### visitInvokeInstruction

    void visitInvokeInstruction(InvokeInstruction obj)
    Visits an InvokeInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINVOKEINTERFACE

    void visitINVOKEINTERFACE(INVOKEINTERFACE obj)
    Visits an INVOKEINTERFACE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINVOKESPECIAL

    void visitINVOKESPECIAL(INVOKESPECIAL obj)
    Visits an INVOKESPECIAL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINVOKESTATIC

    void visitINVOKESTATIC(INVOKESTATIC obj)
    Visits an INVOKESTATIC instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitINVOKEVIRTUAL

    void visitINVOKEVIRTUAL(INVOKEVIRTUAL obj)
    Visits an INVOKEVIRTUAL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIOR

    void visitIOR(IOR obj)
    Visits an IOR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIREM

    void visitIREM(IREM obj)
    Visits an IREM instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIRETURN

    void visitIRETURN(IRETURN obj)
    Visits an IRETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitISHL

    void visitISHL(ISHL obj)
    Visits an ISHL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitISHR

    void visitISHR(ISHR obj)
    Visits an ISHR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitISTORE

    void visitISTORE(ISTORE obj)
    Visits an ISTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitISUB

    void visitISUB(ISUB obj)
    Visits an ISUB instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIUSHR

    void visitIUSHR(IUSHR obj)
    Visits an IUSHR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitIXOR

    void visitIXOR(IXOR obj)
    Visits an IXOR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitJSR

    void visitJSR(JSR obj)
    Visits a JSR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitJSR_W

    void visitJSR_W(JSR_W obj)
    Visits a JSR_W instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitJsrInstruction

    void visitJsrInstruction(JsrInstruction obj)
    Visits a JsrInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitL2D

    void visitL2D(L2D obj)
    Visits an L2D instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitL2F

    void visitL2F(L2F obj)
    Visits an L2F instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitL2I

    void visitL2I(L2I obj)
    Visits an L2I instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLADD

    void visitLADD(LADD obj)
    Visits an LADD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLALOAD

    void visitLALOAD(LALOAD obj)
    Visits an LALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLAND

    void visitLAND(LAND obj)
    Visits an LAND instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLASTORE

    void visitLASTORE(LASTORE obj)
    Visits an LASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLCMP

    void visitLCMP(LCMP obj)
    Visits an LCMP instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLCONST

    void visitLCONST(LCONST obj)
    Visits an LCONST instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLDC

    void visitLDC(LDC obj)
    Visits an LDC instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLDC2_W

    void visitLDC2_W(LDC2_W obj)
    Visits an LDC2_W instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLDIV

    void visitLDIV(LDIV obj)
    Visits an LDIV instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLLOAD

    void visitLLOAD(LLOAD obj)
    Visits an LLOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLMUL

    void visitLMUL(LMUL obj)
    Visits an LMUL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLNEG

    void visitLNEG(LNEG obj)
    Visits an LNEG instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLoadClass

    void visitLoadClass(LoadClass obj)
    Visits a LoadClass.
    Parameters:
      `obj` - the load class.

  - ### visitLoadInstruction

    void visitLoadInstruction(LoadInstruction obj)
    Visits a LoadInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLocalVariableInstruction

    void visitLocalVariableInstruction(LocalVariableInstruction obj)
    Visits a LocalVariableInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLOOKUPSWITCH

    void visitLOOKUPSWITCH(LOOKUPSWITCH obj)
    Visits a LOOKUPSWITCH instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLOR

    void visitLOR(LOR obj)
    Visits an LOR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLREM

    void visitLREM(LREM obj)
    Visits an LREM instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLRETURN

    void visitLRETURN(LRETURN obj)
    Visits an LRETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLSHL

    void visitLSHL(LSHL obj)
    Visits an LSHL instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLSHR

    void visitLSHR(LSHR obj)
    Visits an LSHR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLSTORE

    void visitLSTORE(LSTORE obj)
    Visits an LSTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLSUB

    void visitLSUB(LSUB obj)
    Visits an LSUB instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLUSHR

    void visitLUSHR(LUSHR obj)
    Visits an LUSHR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitLXOR

    void visitLXOR(LXOR obj)
    Visits an LXOR instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitMONITORENTER

    void visitMONITORENTER(MONITORENTER obj)
    Visits a MONITORENTER instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitMONITOREXIT

    void visitMONITOREXIT(MONITOREXIT obj)
    Visits a MONITOREXIT instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitMULTIANEWARRAY

    void visitMULTIANEWARRAY(MULTIANEWARRAY obj)
    Visits a MULTIANEWARRAY instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitNEW

    void visitNEW(NEW obj)
    Visits a NEW instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitNEWARRAY

    void visitNEWARRAY(NEWARRAY obj)
    Visits a NEWARRAY instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitNOP

    void visitNOP(NOP obj)
    Visits a NOP instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPOP

    void visitPOP(POP obj)
    Visits a POP instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPOP2

    void visitPOP2(POP2 obj)
    Visits a POP2 instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPopInstruction

    void visitPopInstruction(PopInstruction obj)
    Visits a PopInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPushInstruction

    void visitPushInstruction(PushInstruction obj)
    Visits a PushInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPUTFIELD

    void visitPUTFIELD(PUTFIELD obj)
    Visits a PUTFIELD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitPUTSTATIC

    void visitPUTSTATIC(PUTSTATIC obj)
    Visits a PUTSTATIC instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitRET

    void visitRET(RET obj)
    Visits a RET instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitRETURN

    void visitRETURN(RETURN obj)
    Visits a RETURN instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitReturnInstruction

    void visitReturnInstruction(ReturnInstruction obj)
    Visits a ReturnInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitSALOAD

    void visitSALOAD(SALOAD obj)
    Visits a SALOAD instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitSASTORE

    void visitSASTORE(SASTORE obj)
    Visits a SASTORE instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitSelect

    void visitSelect(Select obj)
    Visits a Select instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitSIPUSH

    void visitSIPUSH(SIPUSH obj)
    Visits a SIPUSH instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitStackConsumer

    void visitStackConsumer(StackConsumer obj)
    Visits a StackConsumer.
    Parameters:
      `obj` - the instruction.

  - ### visitStackInstruction

    void visitStackInstruction(StackInstruction obj)
    Visits a StackInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitStackProducer

    void visitStackProducer(StackProducer obj)
    Visits a StackProducer.
    Parameters:
      `obj` - the instruction.

  - ### visitStoreInstruction

    void visitStoreInstruction(StoreInstruction obj)
    Visits a StoreInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitSWAP

    void visitSWAP(SWAP obj)
    Visits a SWAP instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitTABLESWITCH

    void visitTABLESWITCH(TABLESWITCH obj)
    Visits a TABLESWITCH instruction.
    Parameters:
      `obj` - the instruction.

  - ### visitTypedInstruction

    void visitTypedInstruction(TypedInstruction obj)
    Visits a TypedInstruction.
    Parameters:
      `obj` - the instruction.

  - ### visitUnconditionalBranch

    void visitUnconditionalBranch(UnconditionalBranch obj)
    Visits an UnconditionalBranch.
    Parameters:
      `obj` - the instruction.

  - ### visitVariableLengthInstruction

    void visitVariableLengthInstruction(VariableLengthInstruction obj)
    Visits a VariableLengthInstruction.
    Parameters:
      `obj` - the instruction.