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
Fields Modifier and Type Field Description (package private) java.util.Stack<ControlFlowNode>
breakTargets
(package private) java.util.Stack<ControlFlowNode>
continueTargets
(package private) java.util.Stack<ControlFlowNode>
gotoTargets
-
Constructor Summary
Constructors Constructor Description NodeCreationVisitor()
-
Method Summary
-
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 Detail
-
breakTargets
final java.util.Stack<ControlFlowNode> breakTargets
-
continueTargets
final java.util.Stack<ControlFlowNode> continueTargets
-
gotoTargets
final java.util.Stack<ControlFlowNode> gotoTargets
-
-
Method Detail
-
connect
final ControlFlowEdge connect(ControlFlowNode from, ControlFlowNode to)
-
connect
final ControlFlowEdge connect(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type)
-
createConnectedEndNode
final ControlFlowNode createConnectedEndNode(Statement statement, ControlFlowNode from)
-
handleStatementList
final ControlFlowNode handleStatementList(AstNodeCollection<Statement> statements, ControlFlowNode source)
-
visitChildren
protected ControlFlowNode visitChildren(AstNode node, ControlFlowNode data)
- Overrides:
visitChildren
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitBlockStatement
public ControlFlowNode visitBlockStatement(BlockStatement node, ControlFlowNode data)
- Specified by:
visitBlockStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitBlockStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitEmptyStatement
public ControlFlowNode visitEmptyStatement(EmptyStatement node, ControlFlowNode data)
- Specified by:
visitEmptyStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitEmptyStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitLabelStatement
public ControlFlowNode visitLabelStatement(LabelStatement node, ControlFlowNode data)
- Specified by:
visitLabelStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitLabelStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitLabeledStatement
public ControlFlowNode visitLabeledStatement(LabeledStatement node, ControlFlowNode data)
- 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
public ControlFlowNode visitExpressionStatement(ExpressionStatement node, ControlFlowNode data)
- Specified by:
visitExpressionStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitExpressionStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitIfElseStatement
public ControlFlowNode visitIfElseStatement(IfElseStatement node, ControlFlowNode data)
- Specified by:
visitIfElseStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitIfElseStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitAssertStatement
public ControlFlowNode visitAssertStatement(AssertStatement node, ControlFlowNode data)
- Specified by:
visitAssertStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitAssertStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitSwitchStatement
public ControlFlowNode visitSwitchStatement(SwitchStatement node, ControlFlowNode data)
- Specified by:
visitSwitchStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitSwitchStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitWhileStatement
public ControlFlowNode visitWhileStatement(WhileStatement node, ControlFlowNode data)
- Specified by:
visitWhileStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitWhileStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitDoWhileStatement
public ControlFlowNode visitDoWhileStatement(DoWhileStatement node, ControlFlowNode data)
- Specified by:
visitDoWhileStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitDoWhileStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitForStatement
public ControlFlowNode visitForStatement(ForStatement node, ControlFlowNode data)
- Specified by:
visitForStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitForStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
handleEmbeddedStatement
final ControlFlowNode handleEmbeddedStatement(Statement embeddedStatement, ControlFlowNode source)
-
visitForEachStatement
public ControlFlowNode visitForEachStatement(ForEachStatement node, ControlFlowNode data)
- Specified by:
visitForEachStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitForEachStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitGotoStatement
public ControlFlowNode visitGotoStatement(GotoStatement node, ControlFlowNode data)
- Specified by:
visitGotoStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitGotoStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitBreakStatement
public ControlFlowNode visitBreakStatement(BreakStatement node, ControlFlowNode data)
- Specified by:
visitBreakStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitBreakStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitContinueStatement
public ControlFlowNode visitContinueStatement(ContinueStatement node, ControlFlowNode data)
- Specified by:
visitContinueStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitContinueStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitReturnStatement
public ControlFlowNode visitReturnStatement(ReturnStatement node, ControlFlowNode data)
- Specified by:
visitReturnStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitReturnStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitThrowStatement
public ControlFlowNode visitThrowStatement(ThrowStatement node, ControlFlowNode data)
- Specified by:
visitThrowStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitThrowStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitTryCatchStatement
public ControlFlowNode visitTryCatchStatement(TryCatchStatement node, ControlFlowNode data)
- Specified by:
visitTryCatchStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitTryCatchStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitSynchronizedStatement
public ControlFlowNode visitSynchronizedStatement(SynchronizedStatement node, ControlFlowNode data)
- Specified by:
visitSynchronizedStatement
in interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>
- Overrides:
visitSynchronizedStatement
in classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
-