Class BreakTargetRelocation
java.lang.Object
com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<Void,Void>
com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<Void>
com.strobel.decompiler.languages.java.ast.transforms.BreakTargetRelocation
- All Implemented Interfaces:
IAstVisitor<Void,
,Void> IAstTransform
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
private static final class
-
Field Summary
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionassessForLoop
(AstNode commonAncestor, List<Stack<AstNode>> paths, LabelStatement label, List<GotoStatement> statements) private boolean
convertToContinue
(BlockStatement parent, BreakTargetRelocation.LabelInfo labelInfo, List<Stack<AstNode>> paths) private Statement
findLowestCommonAncestor
(List<Stack<AstNode>> paths) private BlockStatement
findLowestCommonAncestorBlock
(List<Stack<AstNode>> paths) private static boolean
private static boolean
lookBehind
(AstNode start, Set<AstNode> targets) private void
rebuildPaths
(List<Stack<AstNode>> paths, BreakTargetRelocation.LabelInfo labelInfo) private void
run
(BreakTargetRelocation.LabelInfo labelInfo) private void
runForMethod
(AstNode node) protected Void
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitMethodDeclaration, visitTypeDeclaration, visitTypeDeclarationOverride
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitAssignmentExpression, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
Constructor Details
-
BreakTargetRelocation
-
-
Method Details
-
visitMethodDeclarationOverride
- Overrides:
visitMethodDeclarationOverride
in classContextTrackingVisitor<Void>
-
visitConstructorDeclaration
- Specified by:
visitConstructorDeclaration
in interfaceIAstVisitor<Void,
Void> - Overrides:
visitConstructorDeclaration
in classContextTrackingVisitor<Void>
-
runForMethod
-
run
-
rebuildPaths
-
convertToContinue
private boolean convertToContinue(BlockStatement parent, BreakTargetRelocation.LabelInfo labelInfo, List<Stack<AstNode>> paths) -
assessForLoop
private BreakTargetRelocation.AssessForLoopResult assessForLoop(AstNode commonAncestor, List<Stack<AstNode>> paths, LabelStatement label, List<GotoStatement> statements) -
lookAhead
-
lookBehind
-
findLowestCommonAncestorBlock
-
findLowestCommonAncestor
-
buildPath
-