|
Oracle Fusion Middleware Java API Reference for Oracle TopLink 11g Release 1 (11.1.1) B32476-02 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.
Method Summary | |
---|---|
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, java.util.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. |
Method Detail |
---|
Value newValue(Type type)
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.equal
to the given value.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, java.util.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.
|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |