Class BinaryExpressionWriter

    • Field Detail

      • stdCompareCodes

        protected static final int[] stdCompareCodes
    • Method Detail

      • getController

        public WriterController getController()
        return writer controller
        Since:
        2.5.0
      • getCompareCode

        protected abstract int getCompareCode()
      • writeStdCompare

        protected boolean writeStdCompare​(int type,
                                          boolean simulate)
        writes some int standard operations for compares
        Parameters:
        type - the token type
        Returns:
        true if a successful std operator write
      • doubleTwoOperands

        protected abstract void doubleTwoOperands​(org.objectweb.asm.MethodVisitor mv)
      • removeTwoOperands

        protected abstract void removeTwoOperands​(org.objectweb.asm.MethodVisitor mv)
      • writeSpaceship

        protected boolean writeSpaceship​(int type,
                                         boolean simulate)
      • getNormalOpResultType

        protected abstract ClassNode getNormalOpResultType()
      • getStandardOperationBytecode

        protected abstract int getStandardOperationBytecode​(int type)
      • writeStdOperators

        protected boolean writeStdOperators​(int type,
                                            boolean simulate)
      • writeDivision

        protected boolean writeDivision​(boolean simulate)
      • supportsDivision

        protected boolean supportsDivision()
      • getDevisionOpResultType

        protected abstract ClassNode getDevisionOpResultType()
      • getBitwiseOperationBytecode

        protected abstract int getBitwiseOperationBytecode​(int type)
      • writeBitwiseOp

        protected boolean writeBitwiseOp​(int type,
                                         boolean simulate)
        writes some the bitwise operations. type is one of BITWISE_OR, BITWISE_AND, BITWISE_XOR
        Parameters:
        type - the token type
        Returns:
        true if a successful bitwise operation write
      • getShiftOperationBytecode

        protected abstract int getShiftOperationBytecode​(int type)
      • writeShiftOp

        protected boolean writeShiftOp​(int type,
                                       boolean simulate)
        Write shifting operations. Type is one of LEFT_SHIFT, RIGHT_SHIFT, or RIGHT_SHIFT_UNSIGNED
        Parameters:
        type - the token type
        Returns:
        true on a successful shift operation write
      • write

        public boolean write​(int operation,
                             boolean simulate)
      • getArrayGetCaller

        protected MethodCaller getArrayGetCaller()
      • getArrayGetResultType

        protected ClassNode getArrayGetResultType()
      • getArraySetCaller

        protected MethodCaller getArraySetCaller()
      • arrayGet

        public boolean arrayGet​(int operation,
                                boolean simulate)
      • arraySet

        public boolean arraySet​(boolean simulate)
      • writePostOrPrefixMethod

        public boolean writePostOrPrefixMethod​(int operation,
                                               boolean simulate)
      • writePlusPlus

        protected abstract void writePlusPlus​(org.objectweb.asm.MethodVisitor mv)
      • writeMinusMinus

        protected abstract void writeMinusMinus​(org.objectweb.asm.MethodVisitor mv)