Package org.codehaus.groovy.classgen.asm
Class BinaryExpressionWriter
- java.lang.Object
-
- org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
-
- Direct Known Subclasses:
BinaryFloatExpressionHelper,BinaryIntExpressionHelper,BinaryLongExpressionHelper,BinaryObjectExpressionHelper
public abstract class BinaryExpressionWriter extends Object
- Author:
- Jochen "blackdrag" Theodorou
-
-
Field Summary
Fields Modifier and Type Field Description protected static int[]stdCompareCodes
-
Constructor Summary
Constructors Constructor Description BinaryExpressionWriter(WriterController controller)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanarrayGet(int operation, boolean simulate)booleanarraySet(boolean simulate)protected abstract voiddoubleTwoOperands(org.objectweb.asm.MethodVisitor mv)protected abstract MethodCallergetArrayGetCaller()protected ClassNodegetArrayGetResultType()protected abstract MethodCallergetArraySetCaller()protected abstract intgetBitwiseOperationBytecode(int type)protected abstract intgetCompareCode()protected abstract ClassNodegetDevisionOpResultType()protected abstract ClassNodegetNormalOpResultType()protected abstract intgetShiftOperationBytecode(int type)protected abstract intgetStandardOperationBytecode(int type)protected abstract voidremoveTwoOperands(org.objectweb.asm.MethodVisitor mv)protected booleansupportsDivision()booleanwrite(int operation, boolean simulate)protected booleanwriteBitwiseOp(int type, boolean simulate)writes some the bitwise operations.protected booleanwriteDivision(boolean simulate)protected abstract voidwriteMinusMinus(org.objectweb.asm.MethodVisitor mv)protected abstract voidwritePlusPlus(org.objectweb.asm.MethodVisitor mv)booleanwritePostOrPrefixMethod(int operation, boolean simulate)protected booleanwriteShiftOp(int type, boolean simulate)Write shifting operations.protected booleanwriteSpaceship(int type, boolean simulate)protected booleanwriteStdCompare(int type, boolean simulate)writes some int standard operations.protected booleanwriteStdOperators(int type, boolean simulate)
-
-
-
Constructor Detail
-
BinaryExpressionWriter
public BinaryExpressionWriter(WriterController controller)
-
-
Method Detail
-
getCompareCode
protected abstract int getCompareCode()
-
writeStdCompare
protected boolean writeStdCompare(int type, boolean simulate)writes some int standard operations. type is one of IADD, ISUB, IMUL, IDIV or IREM- 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, BIWISE_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 abstract MethodCaller getArrayGetCaller()
-
getArrayGetResultType
protected ClassNode getArrayGetResultType()
-
getArraySetCaller
protected abstract 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)
-
-