Class GraphParser
java.lang.Object
de.mirkosertic.bytecoder.core.parser.GraphParser
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AnalysisStack
private final CompileUnit
private final Graph
private final org.objectweb.asm.tree.MethodNode
(package private) int
-
Constructor Summary
ConstructorsConstructorDescriptionGraphParser
(CompileUnit compileUnit, org.objectweb.asm.Type ownerType, org.objectweb.asm.tree.MethodNode methodNode, AnalysisStack analysisStack) -
Method Summary
Modifier and TypeMethodDescriptionprivate Region
getOrCreateRegionNodeFor
(org.objectweb.asm.tree.LabelNode label) graph()
private boolean
isStartOfTryCatch
(org.objectweb.asm.tree.LabelNode labelNode) private void
linkArgumentsAndReturnType
(org.objectweb.asm.Type type) private void
linkType
(org.objectweb.asm.Type type) private List
<ControlFlow> parse
(ControlFlow currentFlow, Map<org.objectweb.asm.tree.AbstractInsnNode, Map<org.objectweb.asm.tree.AbstractInsnNode, EdgeType>> incomingEdgesPerInstruction) private void
parse
(org.objectweb.asm.Type ownerType) private List
<ControlFlow> parse_ACONST_NULL
(ControlFlow currentFlow) private List
<ControlFlow> parse_ATHROW
(ControlFlow currentFlow) private List
<ControlFlow> parse_BIPUSH
(ControlFlow currentFlow) private List
<ControlFlow> parse_CHECKCAST
(ControlFlow currentFlow) private List
<ControlFlow> parse_CMP
(ControlFlow currentFlow) private List
<ControlFlow> parse_DCONSTX
(ControlFlow currentFlow, double constant) private List
<ControlFlow> parse_DUP
(ControlFlow currentFlow) private List
<ControlFlow> parse_DUP_X1
(ControlFlow currentFlow) private List
<ControlFlow> parse_DUP_X2
(ControlFlow currentFlow) private List
<ControlFlow> parse_DUP2
(ControlFlow currentFlow) private List
<ControlFlow> parse_DUP2_X1
(ControlFlow currentFlow) private List
<ControlFlow> parse_FCONSTX
(ControlFlow currentFlow, float constant) private List
<ControlFlow> parse_GETFIELD
(ControlFlow currentFlow) private List
<ControlFlow> parse_GETSTATICFIELD
(ControlFlow currentFlow) private List
<ControlFlow> parse_GOTO
(ControlFlow currentFlow) private List
<ControlFlow> parse_ICONSTX
(ControlFlow currentFlow, int constant) private List
<ControlFlow> parse_IF_ONEARG
(ControlFlow currentFlow, Supplier<Test> testSupplier) private List
<ControlFlow> parse_IF_TWOARGS
(ControlFlow currentFlow, Supplier<Test> testSupplier) private List
<ControlFlow> parse_INSTANCEOF
(ControlFlow currentFlow) private List
<ControlFlow> parse_INVOKEINTERFACE
(ControlFlow currentFlow) private List
<ControlFlow> parse_INVOKESPECIAL
(ControlFlow currentFlow) private List
<ControlFlow> parse_INVOKESTATIC
(ControlFlow currentFlow) private List
<ControlFlow> parse_INVOKEVIRTUAL
(ControlFlow currentFlow) private List
<ControlFlow> parse_LCONSTX
(ControlFlow currentFlow, long constant) private List
<ControlFlow> parse_LDC
(ControlFlow currentFlow) private List
<ControlFlow> parse_MONITORENTER
(ControlFlow currentFlow) private List
<ControlFlow> parse_MONITOREXIT
(ControlFlow currentFlow) private List
<ControlFlow> parse_NARYINS
(ControlFlow currentFlow, Supplier<Value> valueFactory, int numberArgs) private List
<ControlFlow> parse_NEW
(ControlFlow currentFlow) private List
<ControlFlow> parse_NEWARRAY
(ControlFlow currentFlow) private List
<ControlFlow> parse_NOP
(ControlFlow currentFlow) private List
<ControlFlow> parse_POP
(ControlFlow currentFlow) private List
<ControlFlow> parse_POP2
(ControlFlow currentFlow) private List
<ControlFlow> parse_PUTFIELD
(ControlFlow currentFlow) private List
<ControlFlow> parse_PUTSTATICFIELD
(ControlFlow currentFlow) private List
<ControlFlow> parse_RETURN
(ControlFlow currentFlow) private List
<ControlFlow> parse_RETURNVALUE
(ControlFlow currentFlow) private List
<ControlFlow> parse_SIPUSH
(ControlFlow currentFlow) private List
<ControlFlow> parse_SWAP
(ControlFlow currentFlow) private List
<ControlFlow> parse_TYPECONVERSION
(ControlFlow currentFlow, org.objectweb.asm.Type type) private List
<ControlFlow> parse_XALOAD
(ControlFlow currentFlow) private List
<ControlFlow> parse_XASTORE
(ControlFlow currentFlow) private List
<ControlFlow> parse_XLOAD
(ControlFlow currentFlow) private List
<ControlFlow> parse_XSTORE
(ControlFlow currentFlow) private List
<ControlFlow> parse_ZEROIF
(ControlFlow currentFlow) private List
<ControlFlow> parseFieldInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseFrame
(ControlFlow currentFlow) private List
<ControlFlow> parseIincInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseIntInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseInvokeDynamicInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseJumpInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseLabelNode
(ControlFlow currentFlow) private List
<ControlFlow> parseLdcInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseLineNumberNode
(ControlFlow currentFlow) private List
<ControlFlow> parseLookupSwitchInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseMethodInsNode
(ControlFlow currentFlow) private List
<ControlFlow> parseMultiANewArrayInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseTableSwitchInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseTypeInsnNode
(ControlFlow currentFlow) private List
<ControlFlow> parseVarInsnNode
(ControlFlow currentFlow) private void
resolveMethodType
(org.objectweb.asm.Type type)
-
Field Details
-
graph
-
methodNode
private final org.objectweb.asm.tree.MethodNode methodNode -
compileUnit
-
analysisStack
-
opcodeToName
-
swapCounter
int swapCounter
-
-
Constructor Details
-
GraphParser
public GraphParser(CompileUnit compileUnit, org.objectweb.asm.Type ownerType, org.objectweb.asm.tree.MethodNode methodNode, AnalysisStack analysisStack)
-
-
Method Details
-
getOrCreateRegionNodeFor
-
parse
private void parse(org.objectweb.asm.Type ownerType) -
parseLabelNode
-
parseLineNumberNode
-
parse_XLOAD
-
parse_XSTORE
-
parseVarInsnNode
-
linkType
private void linkType(org.objectweb.asm.Type type) -
linkArgumentsAndReturnType
private void linkArgumentsAndReturnType(org.objectweb.asm.Type type) -
parse_INVOKESPECIAL
-
parse_INVOKEVIRTUAL
-
parse_INVOKEINTERFACE
-
parse_INVOKESTATIC
-
parseMethodInsNode
-
parse_BIPUSH
-
parse_SIPUSH
-
parse_NEWARRAY
-
parseIntInsnNode
-
parse_RETURN
-
parse_NOP
-
parse_RETURNVALUE
-
parse_ICONSTX
-
parse_FCONSTX
-
parse_LCONSTX
-
parse_DCONSTX
-
parse_ACONST_NULL
-
parse_NARYINS
private List<ControlFlow> parse_NARYINS(ControlFlow currentFlow, Supplier<Value> valueFactory, int numberArgs) -
parse_CMP
-
parse_SWAP
-
parse_DUP_X1
-
parse_DUP_X2
-
parse_ATHROW
-
parse_DUP
-
parse_DUP2
-
parse_DUP2_X1
-
parse_POP
-
parse_POP2
-
parse_TYPECONVERSION
private List<ControlFlow> parse_TYPECONVERSION(ControlFlow currentFlow, org.objectweb.asm.Type type) -
parse_XASTORE
-
parse_XALOAD
-
parseInsnNode
-
parseFrame
-
parse_GOTO
-
parse_IF_TWOARGS
-
parse_IF_ONEARG
-
parse_ZEROIF
-
parseJumpInsnNode
-
parseIincInsnNode
-
parse_NEW
-
parse_INSTANCEOF
-
parse_CHECKCAST
-
parse_MONITORENTER
-
parse_MONITOREXIT
-
parseTypeInsnNode
-
parse_GETFIELD
-
parse_GETSTATICFIELD
-
parse_PUTFIELD
-
parse_PUTSTATICFIELD
-
parseFieldInsnNode
-
parse_LDC
-
parseTableSwitchInsnNode
-
parseLookupSwitchInsnNode
-
parseLdcInsnNode
-
resolveMethodType
private void resolveMethodType(org.objectweb.asm.Type type) -
parseInvokeDynamicInsnNode
-
parseMultiANewArrayInsnNode
-
isStartOfTryCatch
private boolean isStartOfTryCatch(org.objectweb.asm.tree.LabelNode labelNode) -
parse
private List<ControlFlow> parse(ControlFlow currentFlow, Map<org.objectweb.asm.tree.AbstractInsnNode, Map<org.objectweb.asm.tree.AbstractInsnNode, EdgeType>> incomingEdgesPerInstruction) -
graph
-