Class ConvertLoopsTransform
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,TResult>
-
- com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<AstNode>
-
- com.strobel.decompiler.languages.java.ast.transforms.ConvertLoopsTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,AstNode>,IAstTransform
public final class ConvertLoopsTransform extends ContextTrackingVisitor<AstNode>
-
-
Field Summary
Fields Modifier and Type Field Description private static ExpressionStatementARRAY_INIT_PATTERNprivate static WhileStatementCONTINUE_OUTER_PATTERNprivate static WhileStatementDO_WHILE_PATTERNprivate static WhileStatementEMPTY_FOR_EACH_PATTERNprivate static Statement[]EMPTY_STATEMENTSprivate static ForStatementFOR_ARRAY_PATTERN_1private static ForStatementFOR_ARRAY_PATTERN_2private static ForStatementFOR_ARRAY_PATTERN_3private static WhileStatementFOR_EACH_PATTERNprivate static ExpressionStatementGET_ITERATOR_PATTERN-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description ConvertLoopsTransform(DecompilerContext context)
-
Method Summary
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, 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, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, 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, visitWildcardType
-
-
-
-
Field Detail
-
EMPTY_STATEMENTS
private static final Statement[] EMPTY_STATEMENTS
-
ARRAY_INIT_PATTERN
private static final ExpressionStatement ARRAY_INIT_PATTERN
-
FOR_ARRAY_PATTERN_1
private static final ForStatement FOR_ARRAY_PATTERN_1
-
FOR_ARRAY_PATTERN_2
private static final ForStatement FOR_ARRAY_PATTERN_2
-
FOR_ARRAY_PATTERN_3
private static final ForStatement FOR_ARRAY_PATTERN_3
-
GET_ITERATOR_PATTERN
private static final ExpressionStatement GET_ITERATOR_PATTERN
-
FOR_EACH_PATTERN
private static final WhileStatement FOR_EACH_PATTERN
-
EMPTY_FOR_EACH_PATTERN
private static final WhileStatement EMPTY_FOR_EACH_PATTERN
-
DO_WHILE_PATTERN
private static final WhileStatement DO_WHILE_PATTERN
-
CONTINUE_OUTER_PATTERN
private static final WhileStatement CONTINUE_OUTER_PATTERN
-
-
Constructor Detail
-
ConvertLoopsTransform
public ConvertLoopsTransform(DecompilerContext context)
-
-
Method Detail
-
visitChildren
protected AstNode visitChildren(AstNode node, java.lang.Void data)
- Overrides:
visitChildrenin classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
visitExpressionStatement
public AstNode visitExpressionStatement(ExpressionStatement node, java.lang.Void data)
- Specified by:
visitExpressionStatementin interfaceIAstVisitor<java.lang.Void,AstNode>- Overrides:
visitExpressionStatementin classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
visitWhileStatement
public AstNode visitWhileStatement(WhileStatement node, java.lang.Void data)
- Specified by:
visitWhileStatementin interfaceIAstVisitor<java.lang.Void,AstNode>- Overrides:
visitWhileStatementin classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
transformFor
public final ForStatement transformFor(WhileStatement node)
-
hasNestedBlocks
private static boolean hasNestedBlocks(AstNode node)
-
isSimpleIterator
private static boolean isSimpleIterator(Statement statement)
-
canInlineInitializerDeclarations
private Statement canInlineInitializerDeclarations(ForStatement forLoop)
-
transformForEachInArray
public final ForEachStatement transformForEachInArray(ForStatement loop)
-
transformForEach
public final ForEachStatement transformForEach(ExpressionStatement node)
-
transformDoWhile
public final DoWhileStatement transformDoWhile(WhileStatement loop)
-
canConvertWhileToDoWhile
private boolean canConvertWhileToDoWhile(WhileStatement loop, ContinueStatement continueStatement)
-
transformContinueOuter
public final WhileStatement transformContinueOuter(WhileStatement loop)
-
findVariableDeclaration
static VariableDeclarationStatement findVariableDeclaration(AstNode node, java.lang.String identifier)
-
canMoveVariableDeclarationIntoStatement
static Statement canMoveVariableDeclarationIntoStatement(DecompilerContext context, VariableDeclarationStatement declaration, Statement targetStatement)
-
-