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:
visitChildrenin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitBlockStatement
public ControlFlowNode visitBlockStatement(BlockStatement node, ControlFlowNode data)
- Specified by:
visitBlockStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitBlockStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitEmptyStatement
public ControlFlowNode visitEmptyStatement(EmptyStatement node, ControlFlowNode data)
- Specified by:
visitEmptyStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitEmptyStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitLabelStatement
public ControlFlowNode visitLabelStatement(LabelStatement node, ControlFlowNode data)
- Specified by:
visitLabelStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitLabelStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitLabeledStatement
public ControlFlowNode visitLabeledStatement(LabeledStatement node, ControlFlowNode data)
- Specified by:
visitLabeledStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitLabeledStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitVariableDeclaration
public ControlFlowNode visitVariableDeclaration(VariableDeclarationStatement node, ControlFlowNode data)
- Specified by:
visitVariableDeclarationin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitVariableDeclarationin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitExpressionStatement
public ControlFlowNode visitExpressionStatement(ExpressionStatement node, ControlFlowNode data)
- Specified by:
visitExpressionStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitExpressionStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitIfElseStatement
public ControlFlowNode visitIfElseStatement(IfElseStatement node, ControlFlowNode data)
- Specified by:
visitIfElseStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitIfElseStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitAssertStatement
public ControlFlowNode visitAssertStatement(AssertStatement node, ControlFlowNode data)
- Specified by:
visitAssertStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitAssertStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitSwitchStatement
public ControlFlowNode visitSwitchStatement(SwitchStatement node, ControlFlowNode data)
- Specified by:
visitSwitchStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitSwitchStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitWhileStatement
public ControlFlowNode visitWhileStatement(WhileStatement node, ControlFlowNode data)
- Specified by:
visitWhileStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitWhileStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitDoWhileStatement
public ControlFlowNode visitDoWhileStatement(DoWhileStatement node, ControlFlowNode data)
- Specified by:
visitDoWhileStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitDoWhileStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitForStatement
public ControlFlowNode visitForStatement(ForStatement node, ControlFlowNode data)
- Specified by:
visitForStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitForStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
handleEmbeddedStatement
final ControlFlowNode handleEmbeddedStatement(Statement embeddedStatement, ControlFlowNode source)
-
visitForEachStatement
public ControlFlowNode visitForEachStatement(ForEachStatement node, ControlFlowNode data)
- Specified by:
visitForEachStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitForEachStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitGotoStatement
public ControlFlowNode visitGotoStatement(GotoStatement node, ControlFlowNode data)
- Specified by:
visitGotoStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitGotoStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitBreakStatement
public ControlFlowNode visitBreakStatement(BreakStatement node, ControlFlowNode data)
- Specified by:
visitBreakStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitBreakStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitContinueStatement
public ControlFlowNode visitContinueStatement(ContinueStatement node, ControlFlowNode data)
- Specified by:
visitContinueStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitContinueStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitReturnStatement
public ControlFlowNode visitReturnStatement(ReturnStatement node, ControlFlowNode data)
- Specified by:
visitReturnStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitReturnStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitThrowStatement
public ControlFlowNode visitThrowStatement(ThrowStatement node, ControlFlowNode data)
- Specified by:
visitThrowStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitThrowStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitTryCatchStatement
public ControlFlowNode visitTryCatchStatement(TryCatchStatement node, ControlFlowNode data)
- Specified by:
visitTryCatchStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitTryCatchStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
visitSynchronizedStatement
public ControlFlowNode visitSynchronizedStatement(SynchronizedStatement node, ControlFlowNode data)
- Specified by:
visitSynchronizedStatementin interfaceIAstVisitor<ControlFlowNode,ControlFlowNode>- Overrides:
visitSynchronizedStatementin classDepthFirstAstVisitor<ControlFlowNode,ControlFlowNode>
-
-