public final class RuleMethodInterpreter extends BasicInterpreter
api
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8
Constructor and Description |
---|
RuleMethodInterpreter(RuleMethod method) |
Modifier and Type | Method and Description |
---|---|
BasicValue |
binaryOperation(AbstractInsnNode insn,
BasicValue value1,
BasicValue value2) |
BasicValue |
copyOperation(AbstractInsnNode insn,
BasicValue value) |
void |
finish() |
BasicValue |
merge(BasicValue v,
BasicValue w) |
BasicValue |
naryOperation(AbstractInsnNode insn,
List<? extends BasicValue> values) |
void |
newControlFlowEdge(int instructionIndex,
int successorIndex) |
BasicValue |
newOperation(AbstractInsnNode insn) |
BasicValue |
newValue(Type type) |
void |
returnOperation(AbstractInsnNode insn,
BasicValue value,
BasicValue expected) |
BasicValue |
ternaryOperation(AbstractInsnNode insn,
BasicValue v1,
BasicValue v2,
BasicValue v3) |
BasicValue |
unaryOperation(AbstractInsnNode insn,
BasicValue value) |
public RuleMethodInterpreter(RuleMethod method)
public BasicValue newValue(Type type)
newValue
in class BasicInterpreter
public BasicValue newOperation(AbstractInsnNode insn) throws AnalyzerException
newOperation
in class BasicInterpreter
AnalyzerException
public BasicValue copyOperation(AbstractInsnNode insn, BasicValue value) throws AnalyzerException
copyOperation
in class BasicInterpreter
AnalyzerException
public BasicValue unaryOperation(AbstractInsnNode insn, BasicValue value) throws AnalyzerException
unaryOperation
in class BasicInterpreter
AnalyzerException
public BasicValue binaryOperation(AbstractInsnNode insn, BasicValue value1, BasicValue value2) throws AnalyzerException
binaryOperation
in class BasicInterpreter
AnalyzerException
public BasicValue ternaryOperation(AbstractInsnNode insn, BasicValue v1, BasicValue v2, BasicValue v3) throws AnalyzerException
ternaryOperation
in class BasicInterpreter
AnalyzerException
public BasicValue naryOperation(AbstractInsnNode insn, List<? extends BasicValue> values) throws AnalyzerException
naryOperation
in class BasicInterpreter
AnalyzerException
public void returnOperation(AbstractInsnNode insn, BasicValue value, BasicValue expected) throws AnalyzerException
returnOperation
in class BasicInterpreter
AnalyzerException
public BasicValue merge(BasicValue v, BasicValue w)
merge
in class BasicInterpreter
public void newControlFlowEdge(int instructionIndex, int successorIndex)
public void finish()