Class BinaryExpressionWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
Direct Known Subclasses:
BinaryFloatExpressionHelper, BinaryIntExpressionHelper, BinaryLongExpressionHelper, BinaryObjectExpressionHelper

public abstract class BinaryExpressionWriter extends Object
Base class for writing primitive typed operations
  • Field Details

    • stdCompareCodes

      protected static final int[] stdCompareCodes
  • Constructor Details

  • Method Details

    • 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()
    • setArraySetAndGet

      public void setArraySetAndGet(MethodCaller arraySet, MethodCaller arrayGet)
    • 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)