Class ControlFlowGraphBuilder.NodeCreationVisitor
java.lang.Object
com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
com.strobel.decompiler.languages.java.analysis.ControlFlowGraphBuilder.NodeCreationVisitor
- All Implemented Interfaces:
IAstVisitor<ControlFlowNode,
ControlFlowNode>
- Enclosing class:
ControlFlowGraphBuilder
final class ControlFlowGraphBuilder.NodeCreationVisitor
extends DepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final Stack
<ControlFlowNode> (package private) final Stack
<ControlFlowNode> (package private) final Stack
<ControlFlowNode> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) final ControlFlowEdge
connect
(ControlFlowNode from, ControlFlowNode to) (package private) final ControlFlowEdge
connect
(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type) (package private) final ControlFlowNode
createConnectedEndNode
(Statement statement, ControlFlowNode from) (package private) final ControlFlowNode
handleEmbeddedStatement
(Statement embeddedStatement, ControlFlowNode source) (package private) final ControlFlowNode
handleStatementList
(AstNodeCollection<Statement> statements, ControlFlowNode source) visitAssertStatement
(AssertStatement node, ControlFlowNode data) visitBlockStatement
(BlockStatement node, ControlFlowNode data) visitBreakStatement
(BreakStatement node, ControlFlowNode data) protected ControlFlowNode
visitChildren
(AstNode node, ControlFlowNode data) visitContinueStatement
(ContinueStatement node, ControlFlowNode data) visitDoWhileStatement
(DoWhileStatement node, ControlFlowNode data) visitEmptyStatement
(EmptyStatement node, ControlFlowNode data) visitForEachStatement
(ForEachStatement node, ControlFlowNode data) visitForStatement
(ForStatement node, ControlFlowNode data) visitGotoStatement
(GotoStatement node, ControlFlowNode data) visitIfElseStatement
(IfElseStatement node, ControlFlowNode data) visitLabeledStatement
(LabeledStatement node, ControlFlowNode data) visitLabelStatement
(LabelStatement node, ControlFlowNode data) visitReturnStatement
(ReturnStatement node, ControlFlowNode data) visitSwitchStatement
(SwitchStatement node, ControlFlowNode data) visitThrowStatement
(ThrowStatement node, ControlFlowNode data) visitTryCatchStatement
(TryCatchStatement node, ControlFlowNode data) visitWhileStatement
(WhileStatement node, ControlFlowNode data) Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssignmentExpression, visitBinaryOperatorExpression, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitConstructorDeclaration, visitEnumValueDeclaration, visitFieldDeclaration, visitIdentifier, visitIdentifierExpression, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodDeclaration, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitText, visitThisReferenceExpression, visitTypeDeclaration, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableInitializer, visitWildcardType
-
Field Details
-
breakTargets
-
continueTargets
-
gotoTargets
-
-
Constructor Details
-
NodeCreationVisitor
NodeCreationVisitor()
-
-
Method Details
-
connect
-
connect
-
createConnectedEndNode
-
handleStatementList
final ControlFlowNode handleStatementList(AstNodeCollection<Statement> statements, ControlFlowNode source) -
visitChildren
- Overrides:
visitChildren
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitBlockStatement
- Specified by:
visitBlockStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitBlockStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitEmptyStatement
- Specified by:
visitEmptyStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitEmptyStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitLabelStatement
- Specified by:
visitLabelStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitLabelStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitLabeledStatement
- Specified by:
visitLabeledStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitLabeledStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitVariableDeclaration
public ControlFlowNode visitVariableDeclaration(VariableDeclarationStatement node, ControlFlowNode data) - Specified by:
visitVariableDeclaration
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitVariableDeclaration
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitExpressionStatement
- Specified by:
visitExpressionStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitExpressionStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitIfElseStatement
- Specified by:
visitIfElseStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitIfElseStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitAssertStatement
- Specified by:
visitAssertStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitAssertStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitSwitchStatement
- Specified by:
visitSwitchStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitSwitchStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitWhileStatement
- Specified by:
visitWhileStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitWhileStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitDoWhileStatement
- Specified by:
visitDoWhileStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitDoWhileStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitForStatement
- Specified by:
visitForStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitForStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
handleEmbeddedStatement
-
visitForEachStatement
- Specified by:
visitForEachStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitForEachStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitGotoStatement
- Specified by:
visitGotoStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitGotoStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitBreakStatement
- Specified by:
visitBreakStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitBreakStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitContinueStatement
- Specified by:
visitContinueStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitContinueStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitReturnStatement
- Specified by:
visitReturnStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitReturnStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitThrowStatement
- Specified by:
visitThrowStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitThrowStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitTryCatchStatement
- Specified by:
visitTryCatchStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitTryCatchStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-
visitSynchronizedStatement
- Specified by:
visitSynchronizedStatement
in interfaceIAstVisitor<ControlFlowNode,
ControlFlowNode> - Overrides:
visitSynchronizedStatement
in classDepthFirstAstVisitor<ControlFlowNode,
ControlFlowNode>
-