org.apache.commons.nabla.algorithmic.forward.analysis
Class TrackingInterpreter

java.lang.Object
  extended by org.objectweb.asm.tree.analysis.BasicInterpreter
      extended by org.apache.commons.nabla.algorithmic.forward.analysis.TrackingInterpreter
All Implemented Interfaces:
org.objectweb.asm.Opcodes, org.objectweb.asm.tree.analysis.Interpreter

public class TrackingInterpreter
extends org.objectweb.asm.tree.analysis.BasicInterpreter

An interpreter tracking which instructions use which values.

This interpreter wraps BasicValue instances into TrackingValue instances.


Field Summary
 
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, 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, 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, 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, INVOKEDYNAMIC_OWNER, 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
 
Constructor Summary
TrackingInterpreter()
          Build an interpreter.
 
Method Summary
 org.objectweb.asm.tree.analysis.Value binaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.Value value1, org.objectweb.asm.tree.analysis.Value value2)
          
 org.objectweb.asm.tree.analysis.Value copyOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.Value value)
          
 org.objectweb.asm.tree.analysis.Value merge(org.objectweb.asm.tree.analysis.Value v, org.objectweb.asm.tree.analysis.Value w)
          
 org.objectweb.asm.tree.analysis.Value naryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, List values)
          
 org.objectweb.asm.tree.analysis.Value newOperation(org.objectweb.asm.tree.AbstractInsnNode insn)
          
 org.objectweb.asm.tree.analysis.Value newValue(org.objectweb.asm.Type type)
          
 org.objectweb.asm.tree.analysis.Value ternaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.Value value1, org.objectweb.asm.tree.analysis.Value value2, org.objectweb.asm.tree.analysis.Value value3)
          
 org.objectweb.asm.tree.analysis.Value unaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn, org.objectweb.asm.tree.analysis.Value value)
          
 
Methods inherited from class org.objectweb.asm.tree.analysis.BasicInterpreter
returnOperation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TrackingInterpreter

public TrackingInterpreter()
Build an interpreter.

Method Detail

newValue

public org.objectweb.asm.tree.analysis.Value newValue(org.objectweb.asm.Type type)

Specified by:
newValue in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
newValue in class org.objectweb.asm.tree.analysis.BasicInterpreter

newOperation

public org.objectweb.asm.tree.analysis.Value newOperation(org.objectweb.asm.tree.AbstractInsnNode insn)
                                                   throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
newOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
newOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

unaryOperation

public org.objectweb.asm.tree.analysis.Value unaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
                                                            org.objectweb.asm.tree.analysis.Value value)
                                                     throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
unaryOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
unaryOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

binaryOperation

public org.objectweb.asm.tree.analysis.Value binaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
                                                             org.objectweb.asm.tree.analysis.Value value1,
                                                             org.objectweb.asm.tree.analysis.Value value2)
                                                      throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
binaryOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
binaryOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

ternaryOperation

public org.objectweb.asm.tree.analysis.Value ternaryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
                                                              org.objectweb.asm.tree.analysis.Value value1,
                                                              org.objectweb.asm.tree.analysis.Value value2,
                                                              org.objectweb.asm.tree.analysis.Value value3)
                                                       throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
ternaryOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
ternaryOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

naryOperation

public org.objectweb.asm.tree.analysis.Value naryOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
                                                           List values)
                                                    throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
naryOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
naryOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

copyOperation

public org.objectweb.asm.tree.analysis.Value copyOperation(org.objectweb.asm.tree.AbstractInsnNode insn,
                                                           org.objectweb.asm.tree.analysis.Value value)
                                                    throws org.objectweb.asm.tree.analysis.AnalyzerException

Specified by:
copyOperation in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
copyOperation in class org.objectweb.asm.tree.analysis.BasicInterpreter
Throws:
org.objectweb.asm.tree.analysis.AnalyzerException

merge

public org.objectweb.asm.tree.analysis.Value merge(org.objectweb.asm.tree.analysis.Value v,
                                                   org.objectweb.asm.tree.analysis.Value w)

Specified by:
merge in interface org.objectweb.asm.tree.analysis.Interpreter
Overrides:
merge in class org.objectweb.asm.tree.analysis.BasicInterpreter


Copyright © 2008-2009 The Apache Software Foundation. All Rights Reserved.