public interface Interpreter
Analyzer
to work with
various semantic interpreters, without needing to duplicate the code to
simulate the transfer of values.Modifier and Type | Method and Description |
---|---|
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.Copyright © 2018. All rights reserved.