Class InstConstraintVisitor

  • All Implemented Interfaces:
    Visitor

    public class InstConstraintVisitor
    extends EmptyVisitor
    A Visitor class testing for valid preconditions of JVM instructions. The instance of this class will throw a StructuralCodeConstraintException instance if an instruction is visitXXX()ed which has preconditions that are not satisfied. TODO: Currently, the JVM's behavior concerning monitors (MONITORENTER, MONITOREXIT) is not modeled in JustIce.
    See Also:
    StructuralCodeConstraintException
    • Constructor Detail

      • InstConstraintVisitor

        public InstConstraintVisitor()
        The constructor. Constructs a new instance of this class.
    • Method Detail

      • arrayrefOfArrayType

        private boolean arrayrefOfArrayType​(Instruction o,
                                            Type arrayref)
        Assures arrayref is of ArrayType or NULL; returns true if and only if arrayref is non-NULL.
        Throws:
        StructuralCodeConstraintException - if the above constraint is violated.
      • constraintViolated

        private void constraintViolated​(Instruction violator,
                                        java.lang.String description)
        This method is called by the visitXXX() to notify the acceptor of this InstConstraintVisitor that a constraint violation has occurred. This is done by throwing an instance of a StructuralCodeConstraintException.
        Throws:
        StructuralCodeConstraintException - always.
      • referenceTypeIsInitialized

        private void referenceTypeIsInitialized​(Instruction o,
                                                ReferenceType r)
        Assures the ReferenceType r is initialized (or Type.NULL). Formally, this means (!(r instanceof UninitializedObjectType)), because there are no uninitialized array types.
        Throws:
        StructuralCodeConstraintException - if the above constraint is not satisfied.
      • setConstantPoolGen

        public void setConstantPoolGen​(ConstantPoolGen cpg)
        Sets the ConstantPoolGen instance needed for constraint checking prior to execution.
        Parameters:
        cpg - the constant pool generator.
      • setFrame

        public void setFrame​(Frame f)
        This returns the single instance of the InstConstraintVisitor class. To operate correctly, other values must have been set before actually using the instance. Use this method for performance reasons.
        Parameters:
        f - the frame to set.
        See Also:
        setConstantPoolGen(ConstantPoolGen cpg), setMethodGen(MethodGen mg)
      • setMethodGen

        public void setMethodGen​(MethodGen mg)
        Sets the MethodGen instance needed for constraint checking prior to execution.
        Parameters:
        mg - the method generator.
      • valueOfInt

        private void valueOfInt​(Instruction o,
                                Type value)
        Assures value is of type INT.
      • visitAALOAD

        public void visitAALOAD​(AALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitAALOAD in interface Visitor
        Overrides:
        visitAALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitALOAD

        public void visitALOAD​(ALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitALOAD in interface Visitor
        Overrides:
        visitALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitASTORE

        public void visitASTORE​(ASTORE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitASTORE in interface Visitor
        Overrides:
        visitASTORE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitATHROW

        public void visitATHROW​(ATHROW o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitATHROW in interface Visitor
        Overrides:
        visitATHROW in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitBALOAD

        public void visitBALOAD​(BALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitBALOAD in interface Visitor
        Overrides:
        visitBALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitBIPUSH

        public void visitBIPUSH​(BIPUSH o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitBIPUSH in interface Visitor
        Overrides:
        visitBIPUSH in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitCALOAD

        public void visitCALOAD​(CALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitCALOAD in interface Visitor
        Overrides:
        visitCALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitD2F

        public void visitD2F​(D2F o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitD2F in interface Visitor
        Overrides:
        visitD2F in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitD2I

        public void visitD2I​(D2I o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitD2I in interface Visitor
        Overrides:
        visitD2I in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitD2L

        public void visitD2L​(D2L o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitD2L in interface Visitor
        Overrides:
        visitD2L in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDADD

        public void visitDADD​(DADD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDADD in interface Visitor
        Overrides:
        visitDADD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDALOAD

        public void visitDALOAD​(DALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDALOAD in interface Visitor
        Overrides:
        visitDALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDCMPG

        public void visitDCMPG​(DCMPG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDCMPG in interface Visitor
        Overrides:
        visitDCMPG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDCMPL

        public void visitDCMPL​(DCMPL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDCMPL in interface Visitor
        Overrides:
        visitDCMPL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDCONST

        public void visitDCONST​(DCONST o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDCONST in interface Visitor
        Overrides:
        visitDCONST in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDDIV

        public void visitDDIV​(DDIV o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDDIV in interface Visitor
        Overrides:
        visitDDIV in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDLOAD

        public void visitDLOAD​(DLOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDLOAD in interface Visitor
        Overrides:
        visitDLOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDMUL

        public void visitDMUL​(DMUL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDMUL in interface Visitor
        Overrides:
        visitDMUL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDNEG

        public void visitDNEG​(DNEG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDNEG in interface Visitor
        Overrides:
        visitDNEG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDREM

        public void visitDREM​(DREM o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDREM in interface Visitor
        Overrides:
        visitDREM in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDSTORE

        public void visitDSTORE​(DSTORE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDSTORE in interface Visitor
        Overrides:
        visitDSTORE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDSUB

        public void visitDSUB​(DSUB o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDSUB in interface Visitor
        Overrides:
        visitDSUB in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDUP

        public void visitDUP​(DUP o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDUP in interface Visitor
        Overrides:
        visitDUP in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDUP_X1

        public void visitDUP_X1​(DUP_X1 o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDUP_X1 in interface Visitor
        Overrides:
        visitDUP_X1 in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDUP_X2

        public void visitDUP_X2​(DUP_X2 o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDUP_X2 in interface Visitor
        Overrides:
        visitDUP_X2 in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitDUP2

        public void visitDUP2​(DUP2 o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitDUP2 in interface Visitor
        Overrides:
        visitDUP2 in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitF2D

        public void visitF2D​(F2D o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitF2D in interface Visitor
        Overrides:
        visitF2D in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitF2I

        public void visitF2I​(F2I o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitF2I in interface Visitor
        Overrides:
        visitF2I in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitF2L

        public void visitF2L​(F2L o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitF2L in interface Visitor
        Overrides:
        visitF2L in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFADD

        public void visitFADD​(FADD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFADD in interface Visitor
        Overrides:
        visitFADD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFALOAD

        public void visitFALOAD​(FALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFALOAD in interface Visitor
        Overrides:
        visitFALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFCMPG

        public void visitFCMPG​(FCMPG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFCMPG in interface Visitor
        Overrides:
        visitFCMPG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFCMPL

        public void visitFCMPL​(FCMPL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFCMPL in interface Visitor
        Overrides:
        visitFCMPL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFCONST

        public void visitFCONST​(FCONST o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFCONST in interface Visitor
        Overrides:
        visitFCONST in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFDIV

        public void visitFDIV​(FDIV o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFDIV in interface Visitor
        Overrides:
        visitFDIV in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFieldInstructionInternals

        private Field visitFieldInstructionInternals​(FieldInstruction o)
                                              throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • visitFLOAD

        public void visitFLOAD​(FLOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFLOAD in interface Visitor
        Overrides:
        visitFLOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFMUL

        public void visitFMUL​(FMUL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFMUL in interface Visitor
        Overrides:
        visitFMUL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFNEG

        public void visitFNEG​(FNEG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFNEG in interface Visitor
        Overrides:
        visitFNEG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFREM

        public void visitFREM​(FREM o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFREM in interface Visitor
        Overrides:
        visitFREM in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFSTORE

        public void visitFSTORE​(FSTORE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFSTORE in interface Visitor
        Overrides:
        visitFSTORE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitFSUB

        public void visitFSUB​(FSUB o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitFSUB in interface Visitor
        Overrides:
        visitFSUB in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitGOTO

        public void visitGOTO​(GOTO o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitGOTO in interface Visitor
        Overrides:
        visitGOTO in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitGOTO_W

        public void visitGOTO_W​(GOTO_W o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitGOTO_W in interface Visitor
        Overrides:
        visitGOTO_W in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2B

        public void visitI2B​(I2B o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2B in interface Visitor
        Overrides:
        visitI2B in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2C

        public void visitI2C​(I2C o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2C in interface Visitor
        Overrides:
        visitI2C in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2D

        public void visitI2D​(I2D o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2D in interface Visitor
        Overrides:
        visitI2D in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2F

        public void visitI2F​(I2F o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2F in interface Visitor
        Overrides:
        visitI2F in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2L

        public void visitI2L​(I2L o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2L in interface Visitor
        Overrides:
        visitI2L in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitI2S

        public void visitI2S​(I2S o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitI2S in interface Visitor
        Overrides:
        visitI2S in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIADD

        public void visitIADD​(IADD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIADD in interface Visitor
        Overrides:
        visitIADD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIALOAD

        public void visitIALOAD​(IALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIALOAD in interface Visitor
        Overrides:
        visitIALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIAND

        public void visitIAND​(IAND o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIAND in interface Visitor
        Overrides:
        visitIAND in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitICONST

        public void visitICONST​(ICONST o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitICONST in interface Visitor
        Overrides:
        visitICONST in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIDIV

        public void visitIDIV​(IDIV o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIDIV in interface Visitor
        Overrides:
        visitIDIV in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFEQ

        public void visitIFEQ​(IFEQ o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFEQ in interface Visitor
        Overrides:
        visitIFEQ in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFGE

        public void visitIFGE​(IFGE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFGE in interface Visitor
        Overrides:
        visitIFGE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFGT

        public void visitIFGT​(IFGT o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFGT in interface Visitor
        Overrides:
        visitIFGT in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFLE

        public void visitIFLE​(IFLE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFLE in interface Visitor
        Overrides:
        visitIFLE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFLT

        public void visitIFLT​(IFLT o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFLT in interface Visitor
        Overrides:
        visitIFLT in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFNE

        public void visitIFNE​(IFNE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFNE in interface Visitor
        Overrides:
        visitIFNE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIFNULL

        public void visitIFNULL​(IFNULL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIFNULL in interface Visitor
        Overrides:
        visitIFNULL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIINC

        public void visitIINC​(IINC o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIINC in interface Visitor
        Overrides:
        visitIINC in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitILOAD

        public void visitILOAD​(ILOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitILOAD in interface Visitor
        Overrides:
        visitILOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIMUL

        public void visitIMUL​(IMUL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIMUL in interface Visitor
        Overrides:
        visitIMUL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitINEG

        public void visitINEG​(INEG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitINEG in interface Visitor
        Overrides:
        visitINEG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitInvokeInternals

        private int visitInvokeInternals​(InvokeInstruction o)
                                  throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • visitIOR

        public void visitIOR​(IOR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIOR in interface Visitor
        Overrides:
        visitIOR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIREM

        public void visitIREM​(IREM o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIREM in interface Visitor
        Overrides:
        visitIREM in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitISHL

        public void visitISHL​(ISHL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitISHL in interface Visitor
        Overrides:
        visitISHL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitISHR

        public void visitISHR​(ISHR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitISHR in interface Visitor
        Overrides:
        visitISHR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitISTORE

        public void visitISTORE​(ISTORE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitISTORE in interface Visitor
        Overrides:
        visitISTORE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitISUB

        public void visitISUB​(ISUB o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitISUB in interface Visitor
        Overrides:
        visitISUB in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIUSHR

        public void visitIUSHR​(IUSHR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIUSHR in interface Visitor
        Overrides:
        visitIUSHR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitIXOR

        public void visitIXOR​(IXOR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitIXOR in interface Visitor
        Overrides:
        visitIXOR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitJSR

        public void visitJSR​(JSR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitJSR in interface Visitor
        Overrides:
        visitJSR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitJSR_W

        public void visitJSR_W​(JSR_W o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitJSR_W in interface Visitor
        Overrides:
        visitJSR_W in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitL2D

        public void visitL2D​(L2D o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitL2D in interface Visitor
        Overrides:
        visitL2D in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitL2F

        public void visitL2F​(L2F o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitL2F in interface Visitor
        Overrides:
        visitL2F in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitL2I

        public void visitL2I​(L2I o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitL2I in interface Visitor
        Overrides:
        visitL2I in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLADD

        public void visitLADD​(LADD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLADD in interface Visitor
        Overrides:
        visitLADD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLALOAD

        public void visitLALOAD​(LALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLALOAD in interface Visitor
        Overrides:
        visitLALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLAND

        public void visitLAND​(LAND o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLAND in interface Visitor
        Overrides:
        visitLAND in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLCMP

        public void visitLCMP​(LCMP o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLCMP in interface Visitor
        Overrides:
        visitLCMP in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLCONST

        public void visitLCONST​(LCONST o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLCONST in interface Visitor
        Overrides:
        visitLCONST in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLDC

        public void visitLDC​(LDC o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLDC in interface Visitor
        Overrides:
        visitLDC in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLDC_W

        public void visitLDC_W​(LDC_W o)
        Ensures the specific preconditions of the said instruction.
        Parameters:
        o - the instruction to visit.
      • visitLDC2_W

        public void visitLDC2_W​(LDC2_W o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLDC2_W in interface Visitor
        Overrides:
        visitLDC2_W in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLDIV

        public void visitLDIV​(LDIV o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLDIV in interface Visitor
        Overrides:
        visitLDIV in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLLOAD

        public void visitLLOAD​(LLOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLLOAD in interface Visitor
        Overrides:
        visitLLOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLMUL

        public void visitLMUL​(LMUL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLMUL in interface Visitor
        Overrides:
        visitLMUL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLNEG

        public void visitLNEG​(LNEG o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLNEG in interface Visitor
        Overrides:
        visitLNEG in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLoadClass

        public void visitLoadClass​(LoadClass o)
        Assures the generic preconditions of a LoadClass instance. The referenced class is loaded and pass2-verified.
        Specified by:
        visitLoadClass in interface Visitor
        Overrides:
        visitLoadClass in class EmptyVisitor
        Parameters:
        o - the load class.
      • visitLOR

        public void visitLOR​(LOR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLOR in interface Visitor
        Overrides:
        visitLOR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLREM

        public void visitLREM​(LREM o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLREM in interface Visitor
        Overrides:
        visitLREM in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLSHL

        public void visitLSHL​(LSHL o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLSHL in interface Visitor
        Overrides:
        visitLSHL in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLSHR

        public void visitLSHR​(LSHR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLSHR in interface Visitor
        Overrides:
        visitLSHR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLSTORE

        public void visitLSTORE​(LSTORE o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLSTORE in interface Visitor
        Overrides:
        visitLSTORE in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLSUB

        public void visitLSUB​(LSUB o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLSUB in interface Visitor
        Overrides:
        visitLSUB in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLUSHR

        public void visitLUSHR​(LUSHR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLUSHR in interface Visitor
        Overrides:
        visitLUSHR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitLXOR

        public void visitLXOR​(LXOR o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitLXOR in interface Visitor
        Overrides:
        visitLXOR in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitNEW

        public void visitNEW​(NEW o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitNEW in interface Visitor
        Overrides:
        visitNEW in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitNOP

        public void visitNOP​(NOP o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitNOP in interface Visitor
        Overrides:
        visitNOP in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitPOP

        public void visitPOP​(POP o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitPOP in interface Visitor
        Overrides:
        visitPOP in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitPOP2

        public void visitPOP2​(POP2 o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitPOP2 in interface Visitor
        Overrides:
        visitPOP2 in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitRET

        public void visitRET​(RET o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitRET in interface Visitor
        Overrides:
        visitRET in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitRETURN

        public void visitRETURN​(RETURN o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitRETURN in interface Visitor
        Overrides:
        visitRETURN in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitSALOAD

        public void visitSALOAD​(SALOAD o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitSALOAD in interface Visitor
        Overrides:
        visitSALOAD in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitSIPUSH

        public void visitSIPUSH​(SIPUSH o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitSIPUSH in interface Visitor
        Overrides:
        visitSIPUSH in class EmptyVisitor
        Parameters:
        o - the instruction.
      • visitStackAccessor

        private void visitStackAccessor​(Instruction o)
        Ensures the general preconditions of an instruction that accesses the stack. This method is here because BCEL has no such superinterface for the stack accessing instructions; and there are funny unexpected exceptions in the semantices of the superinterfaces and superclasses provided. E.g. SWAP is a StackConsumer, but DUP_X1 is not a StackProducer. Therefore, this method is called by all StackProducer, StackConsumer, and StackInstruction instances via their visitXXX() method. Unfortunately, as the superclasses and superinterfaces overlap, some instructions cause this method to be called two or three times. [TODO: Fix this.]
        See Also:
        visitStackConsumer(StackConsumer o), visitStackProducer(StackProducer o), visitStackInstruction(StackInstruction o)
      • visitSWAP

        public void visitSWAP​(SWAP o)
        Ensures the specific preconditions of the said instruction.
        Specified by:
        visitSWAP in interface Visitor
        Overrides:
        visitSWAP in class EmptyVisitor
        Parameters:
        o - the instruction.