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
Method Summary |
boolean |
arrayGet(int operation,
boolean simulate)
|
boolean |
arraySet(boolean simulate)
|
protected abstract void |
doubleTwoOperands(org.objectweb.asm.MethodVisitor mv)
|
protected abstract MethodCaller |
getArrayGetCaller()
|
protected ClassNode |
getArrayGetResultType()
|
protected abstract MethodCaller |
getArraySetCaller()
|
protected abstract int |
getBitwiseOperationBytecode(int type)
|
protected abstract int |
getCompareCode()
|
protected abstract ClassNode |
getDevisionOpResultType()
|
protected abstract ClassNode |
getNormalOpResultType()
|
protected abstract int |
getShiftOperationBytecode(int type)
|
protected abstract int |
getStandardOperationBytecode(int type)
|
protected abstract void |
removeTwoOperands(org.objectweb.asm.MethodVisitor mv)
|
protected boolean |
supportsDivision()
|
boolean |
write(int operation,
boolean simulate)
|
protected boolean |
writeBitwiseOp(int type,
boolean simulate)
writes some the bitwise operations. type is one of BITWISE_OR,
BITWISE_AND, BIWISE_XOR |
protected boolean |
writeDivision(boolean simulate)
|
protected abstract void |
writeMinusMinus(org.objectweb.asm.MethodVisitor mv)
|
protected abstract void |
writePlusPlus(org.objectweb.asm.MethodVisitor mv)
|
boolean |
writePostOrPrefixMethod(int operation,
boolean simulate)
|
protected boolean |
writeShiftOp(int type,
boolean simulate)
Write shifting operations. |
protected boolean |
writeSpaceship(int type,
boolean simulate)
|
protected boolean |
writeStdCompare(int type,
boolean simulate)
writes some int standard operations. type is one of IADD, ISUB, IMUL,
IDIV or IREM |
protected boolean |
writeStdOperators(int type,
boolean simulate)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
stdCompareCodes
protected static final int[] stdCompareCodes
BinaryExpressionWriter
public BinaryExpressionWriter(WriterController controller)
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)