public class ExpressionTransforms extends SimpleInsnVisitor<TransformContextBase> implements StatementTransformer
NONE| Constructor and Description |
|---|
ExpressionTransforms() |
| Modifier and Type | Method and Description |
|---|---|
static void |
runOnExpression(Instruction statement,
TransformContextBase ctx) |
void |
transform(Instruction statement,
StatementTransformContext ctx)
Runs the transform on the statements within a block.
|
boolean |
unwrapBooleanOperator(Ternary ternary,
TransformContextBase ctx) |
None |
visitBlock(Block block,
TransformContextBase ctx) |
None |
visitCheckCast(Cast cast,
TransformContextBase ctx) |
None |
visitComparison(Comparison comparison,
TransformContextBase ctx) |
None |
visitLogicNot(LogicNot logicNot,
TransformContextBase ctx) |
None |
visitTernary(Ternary ternary,
TransformContextBase ctx) |
visitDefaultvisitArrayElementReference, visitArrayLen, visitAssert, visitBinary, visitBlockContainer, visitBranch, visitClassDecl, visitCompare, visitCompoundAssignment, visitContinue, visitDeadCode, visitDoWhileLoop, visitFieldDecl, visitFieldReference, visitForEachLoop, visitForLoop, visitIfInstruction, visitInstanceOf, visitInvoke, visitInvokeDynamic, visitLdcBoolean, visitLdcChar, visitLdcClass, visitLdcNull, visitLdcNumber, visitLdcString, visitLeave, visitLoad, visitLoadThis, visitLocalReference, visitLocalVariable, visitLogicAnd, visitLogicOr, visitMethodDecl, visitMethodReference, visitMonitor, visitNew, visitNewArray, visitNewObject, visitNop, visitPostIncrement, visitReturn, visitStore, visitSwitch, visitSwitchSection, visitSwitchTable, visitSynchronized, visitThrow, visitTryCatch, visitTryCatchHandler, visitTryFinally, visitTryWithResources, visitWhileLoop, visitYieldpublic static void runOnExpression(Instruction statement, TransformContextBase ctx)
public void transform(Instruction statement, StatementTransformContext ctx)
StatementTransformerThis transform may only modify instructions after and including the provided position. The transform will run from over the block backwards.
Instructions prior to the current position must not be modified. It is valid to read such instructions, but not recommended as those have not been transformed yet.
This function is only called on control-flow blocks with unreachable end-points.
This, the last instruction in the block must always have the InstructionFlag.END_POINT_UNREACHABLE flag.
transform in interface StatementTransformerctx - The context.public None visitBlock(Block block, TransformContextBase ctx)
visitBlock in class InsnVisitor<None,TransformContextBase>public None visitCheckCast(Cast cast, TransformContextBase ctx)
visitCheckCast in class InsnVisitor<None,TransformContextBase>public None visitComparison(Comparison comparison, TransformContextBase ctx)
visitComparison in class InsnVisitor<None,TransformContextBase>public None visitTernary(Ternary ternary, TransformContextBase ctx)
visitTernary in class InsnVisitor<None,TransformContextBase>public None visitLogicNot(LogicNot logicNot, TransformContextBase ctx)
visitLogicNot in class InsnVisitor<None,TransformContextBase>public boolean unwrapBooleanOperator(Ternary ternary, TransformContextBase ctx)