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 ControlFlowEdgeconnect(ControlFlowNode from, ControlFlowNode to) (package private) final ControlFlowEdgeconnect(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type) (package private) final ControlFlowNodecreateConnectedEndNode(Statement statement, ControlFlowNode from) (package private) final ControlFlowNodehandleEmbeddedStatement(Statement embeddedStatement, ControlFlowNode source) (package private) final ControlFlowNodehandleStatementList(AstNodeCollection<Statement> statements, ControlFlowNode source) visitAssertStatement(AssertStatement node, ControlFlowNode data) visitBlockStatement(BlockStatement node, ControlFlowNode data) visitBreakStatement(BreakStatement node, ControlFlowNode data) protected ControlFlowNodevisitChildren(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 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:
visitChildrenin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitBlockStatement
- Specified by:
visitBlockStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitBlockStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitEmptyStatement
- Specified by:
visitEmptyStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitEmptyStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitLabelStatement
- Specified by:
visitLabelStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitLabelStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitLabeledStatement
- 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
- Specified by:
visitExpressionStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitExpressionStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitIfElseStatement
- Specified by:
visitIfElseStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitIfElseStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitAssertStatement
- Specified by:
visitAssertStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitAssertStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitSwitchStatement
- Specified by:
visitSwitchStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitSwitchStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitWhileStatement
- Specified by:
visitWhileStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitWhileStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitDoWhileStatement
- Specified by:
visitDoWhileStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitDoWhileStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitForStatement
- Specified by:
visitForStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitForStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
handleEmbeddedStatement
-
visitForEachStatement
- Specified by:
visitForEachStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitForEachStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitGotoStatement
- Specified by:
visitGotoStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitGotoStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitBreakStatement
- Specified by:
visitBreakStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitBreakStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitContinueStatement
- Specified by:
visitContinueStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitContinueStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitReturnStatement
- Specified by:
visitReturnStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitReturnStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitThrowStatement
- Specified by:
visitThrowStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitThrowStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitTryCatchStatement
- Specified by:
visitTryCatchStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitTryCatchStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-
visitSynchronizedStatement
- Specified by:
visitSynchronizedStatementin interfaceIAstVisitor<ControlFlowNode, ControlFlowNode>- Overrides:
visitSynchronizedStatementin classDepthFirstAstVisitor<ControlFlowNode, ControlFlowNode>
-