class RuleMethodInterpreter
extends org.objectweb.asm.tree.analysis.BasicInterpreter
Modifier and Type | Class and Description |
---|---|
private class |
RuleMethodInterpreter.Edge |
Modifier and Type | Field and Description |
---|---|
private java.util.List<RuleMethodInterpreter.Edge> |
additionalEdges |
private RuleMethod |
method |
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V9
Constructor and Description |
---|
RuleMethodInterpreter(RuleMethod method) |
Modifier and Type | Method and Description |
---|---|
org.objectweb.asm.tree.analysis.BasicValue |
binaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue value1,
org.objectweb.asm.tree.analysis.BasicValue value2) |
org.objectweb.asm.tree.analysis.BasicValue |
copyOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue value) |
private InstructionGraphNode |
createNode(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue resultValue,
org.objectweb.asm.tree.analysis.BasicValue... prevNodes) |
private org.objectweb.asm.tree.AbstractInsnNode |
findArrayCreatorPredecessor(org.objectweb.asm.tree.analysis.BasicValue value) |
void |
finish() |
private InstructionGraphNode |
getGraphNode(org.objectweb.asm.tree.AbstractInsnNode insn) |
org.objectweb.asm.tree.analysis.BasicValue |
merge(org.objectweb.asm.tree.analysis.BasicValue v,
org.objectweb.asm.tree.analysis.BasicValue w) |
org.objectweb.asm.tree.analysis.BasicValue |
naryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
java.util.List values) |
void |
newControlFlowEdge(int instructionIndex,
int successorIndex) |
org.objectweb.asm.tree.analysis.BasicValue |
newOperation(org.objectweb.asm.tree.AbstractInsnNode insn) |
org.objectweb.asm.tree.analysis.BasicValue |
newValue(org.objectweb.asm.Type type) |
void |
returnOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue value,
org.objectweb.asm.tree.analysis.BasicValue expected) |
org.objectweb.asm.tree.analysis.BasicValue |
ternaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue v1,
org.objectweb.asm.tree.analysis.BasicValue v2,
org.objectweb.asm.tree.analysis.BasicValue v3) |
org.objectweb.asm.tree.analysis.BasicValue |
unaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
org.objectweb.asm.tree.analysis.BasicValue value) |
private org.objectweb.asm.tree.analysis.BasicValue |
unwrap(org.objectweb.asm.tree.analysis.BasicValue resultValue) |
private final RuleMethod method
private final java.util.List<RuleMethodInterpreter.Edge> additionalEdges
public RuleMethodInterpreter(RuleMethod method)
public org.objectweb.asm.tree.analysis.BasicValue newValue(org.objectweb.asm.Type type)
newValue
in class org.objectweb.asm.tree.analysis.BasicInterpreter
public org.objectweb.asm.tree.analysis.BasicValue newOperation(org.objectweb.asm.tree.AbstractInsnNode insn) throws org.objectweb.asm.tree.analysis.AnalyzerException
newOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public org.objectweb.asm.tree.analysis.BasicValue copyOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue value) throws org.objectweb.asm.tree.analysis.AnalyzerException
copyOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public org.objectweb.asm.tree.analysis.BasicValue unaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue value) throws org.objectweb.asm.tree.analysis.AnalyzerException
unaryOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public org.objectweb.asm.tree.analysis.BasicValue binaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue value1, org.objectweb.asm.tree.analysis.BasicValue value2) throws org.objectweb.asm.tree.analysis.AnalyzerException
binaryOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public org.objectweb.asm.tree.analysis.BasicValue ternaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue v1, org.objectweb.asm.tree.analysis.BasicValue v2, org.objectweb.asm.tree.analysis.BasicValue v3) throws org.objectweb.asm.tree.analysis.AnalyzerException
ternaryOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public org.objectweb.asm.tree.analysis.BasicValue naryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, java.util.List values) throws org.objectweb.asm.tree.analysis.AnalyzerException
naryOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
public void returnOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue value, org.objectweb.asm.tree.analysis.BasicValue expected) throws org.objectweb.asm.tree.analysis.AnalyzerException
returnOperation
in class org.objectweb.asm.tree.analysis.BasicInterpreter
org.objectweb.asm.tree.analysis.AnalyzerException
private InstructionGraphNode createNode(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.BasicValue resultValue, org.objectweb.asm.tree.analysis.BasicValue... prevNodes)
public org.objectweb.asm.tree.analysis.BasicValue merge(org.objectweb.asm.tree.analysis.BasicValue v, org.objectweb.asm.tree.analysis.BasicValue w)
merge
in class org.objectweb.asm.tree.analysis.BasicInterpreter
public void newControlFlowEdge(int instructionIndex, int successorIndex)
private org.objectweb.asm.tree.AbstractInsnNode findArrayCreatorPredecessor(org.objectweb.asm.tree.analysis.BasicValue value)
public void finish()
private InstructionGraphNode getGraphNode(org.objectweb.asm.tree.AbstractInsnNode insn)
private org.objectweb.asm.tree.analysis.BasicValue unwrap(org.objectweb.asm.tree.analysis.BasicValue resultValue)