|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
public interface Interpreter
A semantic bytecode interpreter. More precisely, this interpreter only
manages the computation of values from other values: it does not manage the
transfer of values to or from the stack, and to or from the local variables.
This separation allows a generic bytecode Analyzer to work with
various semantic interpreters, without needing to duplicate the code to
simulate the transfer of values.
| 方法摘要 | |
|---|---|
Value |
binaryOperation(AbstractInsnNode insn,
Value value1,
Value value2)
Interprets a bytecode instruction with two arguments. |
Value |
copyOperation(AbstractInsnNode insn,
Value value)
Interprets a bytecode instruction that moves a value on the stack or to or from local variables. |
Value |
merge(Value v,
Value w)
Merges two values. |
Value |
naryOperation(AbstractInsnNode insn,
List values)
Interprets a bytecode instruction with a variable number of arguments. |
Value |
newOperation(AbstractInsnNode insn)
Interprets a bytecode instruction without arguments. |
Value |
newValue(Type type)
Creates a new value that represents the given type. |
Value |
ternaryOperation(AbstractInsnNode insn,
Value value1,
Value value2,
Value value3)
Interprets a bytecode instruction with three arguments. |
Value |
unaryOperation(AbstractInsnNode insn,
Value value)
Interprets a bytecode instruction with a single argument. |
| 方法详细信息 |
|---|
Value newValue(Type type)
this),
exception handler variable and with null type
for variables reserved by long and double types.
type - a primitive or reference type, or null to
represent an uninitialized value.
Value newOperation(AbstractInsnNode insn)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.
AnalyzerException - if an error occured during the interpretation.
Value copyOperation(AbstractInsnNode insn,
Value value)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.value - the value that must be moved by the instruction.
AnalyzerException - if an error occured during the interpretation.
Value unaryOperation(AbstractInsnNode insn,
Value value)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.value - the argument of the instruction to be interpreted.
AnalyzerException - if an error occured during the interpretation.
Value binaryOperation(AbstractInsnNode insn,
Value value1,
Value value2)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.value1 - the first argument of the instruction to be interpreted.value2 - the second argument of the instruction to be interpreted.
AnalyzerException - if an error occured during the interpretation.
Value ternaryOperation(AbstractInsnNode insn,
Value value1,
Value value2,
Value value3)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.value1 - the first argument of the instruction to be interpreted.value2 - the second argument of the instruction to be interpreted.value3 - the third argument of the instruction to be interpreted.
AnalyzerException - if an error occured during the interpretation.
Value naryOperation(AbstractInsnNode insn,
List values)
throws AnalyzerException
insn - the bytecode instruction to be interpreted.values - the arguments of the instruction to be interpreted.
AnalyzerException - if an error occured during the interpretation.
Value merge(Value v,
Value w)
v - a value.w - another value.
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||